搭建 Frp 来远程内网 Windows 和 Linux 机子

搭建 Frp 来远程内网 Windows 和 Linux 机子

 

魏刘宏 2019519

一、使用一键脚本搭建服务端

 

Frp 这个内网穿透项目的官方地址为 https://github.com/fatedier/frp ,不过我们今天搭建服务端时不直接使用这个,而是使用了网友做的一键安装脚本,地址为 https://github.com/clangcn/onekey-install-shell/tree/master/frps

那么我们就开始吧,emmmm,对了,你应该有自己的服务器或 VPS 吧?没有的话,您就看个乐呵吧O(_)O

首先使用 SSH(推荐 MobaXterm)登录服务器,然后贴入以下代码进行安装(CentOS7 64位亲测可行)(20220703 已更新为 dlgcy 版):

wget --no-check-certificate https://gitee.com/DLGCY_Clone/onekey-install-shell/raw/dlgcy/frps/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install

 

2021.07.24 更新:该脚本作者已经三年没有更新,本人克隆了该项目,修改了脚本中的链接,目前支持更新到 frps 的 0.37.0 版本。地址为:https://gitee.com/DLGCY_Clone/onekey-install-shell/tree/dlgcy/frps

2022.07.03 更新:更新默认 Frp 版本为 0.43.0,且增加版本输入功能(后续 frp 版本更新,此脚本应该不用更新了)。

 

三行分别是下载脚本、改变权限、执行安装,安装过程一般按照默认值(直接回车)就行了,就是有些常用的端口肯定被占用了,所以要改一下,具体过程可参考网上的文章《centos 一键搭建内网穿透工具 frp 服务端》。一切顺利的话,在最后会列出所有重要信息,包括客户端绑定的端口(bind_port),服务端的管理(查看客户端在线情况)端口(dashboard_port)以及用户名和密码,还有服务端和客户端的 token 值。

 

最重要的一点,以上出现的所有端口,都需要在服务器上放行,可查找具体系统的放行方法,我是用宝塔面板操作的:

%title插图%num

 

不然的话,客户端启动的时候会在短暂延迟后关闭,没有什么提示。

 

安装完成后,frps 已经成为一个服务了,系统重启后会自动运行(自己手动搭建的话,这方面要自己处理)。这时我们输入 frps 命令,就可以看到用法了:

%title插图%num

 

功能都显而易见,就不多说了,比如,输入 frps config 可进行配置,打开的是一个文本编辑页面,按 I 键进入编辑状态,按 ESC 退出编辑状态,输入 :wq 回车保存并退出,输入 :q 回车退出……

 

再比如,输入 frps version 可查看当前 frps 版本,我这个目前是0.20.0,不是最新(0.27.0)的:

%title插图%num

 

好了,服务端就说这么多了。

 

二、Windows 客户端

 

客户端没听说有什么一键脚本,而且也确实不需要,因为比较简单。

我们只需要在 https://github.com/fatedier/frp/releases 下载一个最新版:

%title插图%num

 

我们只需要其中的 frpc.exe frpc.ini 这两个文件就行了:

%title插图%num

 

将这两个文件拷贝到某个目录,然后我们再在其中建一个 start-frpc.bat 文件,内容为:

frpc -c ./frpc-win-home.ini
pause

 

意思是,启动 frpc 程序,并使用当前目录的配置文件(我改了个名字) frpc-win-home.ini

%title插图%num

 

文字版为:

[common]
server_addr = #<服务器IP>
server_port = #<服务端绑定IP>
token = #<服务端约定token>

[mstsc-home]  #<隧道名称,须唯一>
type = tcp
local_ip = 127.0.0.1
local_port = 3389  #<本地需要连接的端口,此处为远程桌面>
remote_port = #<服务端对应的端口>

 

这样的话,我们运行 start-frpc.bat 这个批处理文件,就会启动 frpc 程序了,并且配置了一个适用于远程桌面程序的隧道。效果就是,我们在公司的远程桌面程序中,填入你的服务器IPserver_addr+ 对应端口(remote_port),实际会访问到你家里(启动了这个 frpc 客户端)电脑的指定端口(local_port),这样就达到了远程内网机器的目的。其中 remote_port 无需在服务端配置,不过要在服务器防火墙中放行。

 

运行效果如图:

%title插图%num

 

该窗口不能关闭,关闭就结束了。开机运行可将该批处理文件的快捷方式添加到系统的启动目录里(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp),隐藏窗口方法请自行百度(可使用 PS Tray Factory)。

 

三、Linux 客户端

 

首先当然还是下载客户端程序啦,这个也是根据系统来的,我下的是 frp_0.27.0_linux_arm.tar.gz ,可以在 Windows 电脑中先将需要的文件取出来:

%title插图%num

 

也是只需一个 frpc 程序和一个配置文件,当然,配置文件我们还要修改。

 

将所需文件传到 Linux 电脑(我是使用香蕉派Bpi-M2B)中,推荐使用 Swish 软件:

%title插图%num

 

最后我们 Linux 电脑中有 3 个文件:

%title插图%num

 

多出来的那个文件也就是启动脚本文件 start-frpc.sh

cd /usr/dlgcy/frp
./frpc -c ./frpc-bpi.ini

 

Windows 中不同的是,这里先要转到这个目录,才能执行程序;还有,这个文件需要可执行权限(chmod 755 start-frpc.sh)。

 

再来看看配置文件:

%title插图%num

 

基本上和 Windows 上的是一样的;不过可以看到我配置了两个隧道,分别用于 SSH VNC 程序;而服务端无需配置和重启,还是很方便的;不过要记得在服务器上将相关端口放行。

 

开机启动的话,以我用的 CentOS7 为例,就是在 /etc/rc.d/rc.local 文件(也需要可执行权限)中添加指令:

nohup /usr/dlgcy/frp/start-frpc.sh &

 

nohup & 组合表示在后台运行。

 

四、监控页面

 

还记得安装的时候配置的 dashboard_port 吗?这个就是你在浏览器访问你服务器IP加上这个端口,然后输入用户名和密码登录,会打开一个监控页面:

%title插图%num

 

主要就是一个信息概览页面和一个客户端连接状态页面(可以看到Windows端的一个隧道和Linux 端的两个隧道都在线),比较简单,不过挺方便的。

 

好了,祝大家使用愉快!

 

 

原创文章,转载请注明: 转载自 独立观察员(dlgcy.com)

本文链接地址: [搭建 Frp 来远程内网 Windows 和 Linux 机子](https://dlgcy.com/frp-windows-linux/)

关注微信公众号 独立观察员博客(DLGCY_BLOG) 第一时间获取最新文章

%title插图%num

发表评论