「内网远程桌面」搭建frp实现内网穿透

FRP是GitHub上一个有名的开源项目。借助这个简单易懂程序,我们可以轻松实现搭建自己的内网穿透。

Step1:分析

使用这套程序的起因是我想使用Mac远程连接一台位于复杂内网环境中但可以联网的Windows10 PC。

通常情况下,可以使用软件teamviwer或者向日葵实现。但这种方案需要控制端安装相应软件,且商业版需要付费,故弃之。

也可以使用网络上内网穿透提供商的服务,如花生壳。但其免费版限速严重,故弃之。

最后,考虑到自己有一台闲置的Linux服务器,且拥有固定公网IP,所以选择自建内网穿透服务器。几经考(zhe)虑(teng),选择了简单的frp作为工具。

另:这篇笔记的对象主要是没有Linux操作经验的小白。

Step2:准备

服务端使用ubuntu 64位系统,客户端为Windows10。

Step3:操作

在开始前,先感谢知乎大佬的这篇文章给我的帮助。然后附上FRP项目在GitHub上的地址:点此跳转

首先是服务端的配置:

服务端配置过程中主要用到的指令有:

ssh(远程连接Linux服务器)、wget(用于下载GitHub上的程序原文件)、tar(源文件是压缩包,该指令用于解压)、mv(源文件名字太长,mv用于给源文件重命名)、cd(切换工作目录,用于打开文件夹)、vi(Linux下好用的文本编辑器,用于编辑frp的配置文件)等

首先使用ssh指令远程连接服务器:(建议使用root账号登陆)

1
ssh #linux服务器的用户名@#服务器IP地址

按提示输入密码,进入服务器

随后,使用wget指令,下载GitHub上的源文件。目前的版本是0.38.0,根据GitHub上的下载链接调整(国内访问不稳定)

frp项目的下载链接页面

1
wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz

输入

1
ls

查看目录中是否已经有了该安装包。确认后

解压安装包(注意加粗的版本号,以你下载的为准)

1
tar -xzvf frp_0.38.0_linux_amd64.tar.gz

解压完成后,输入

1
ls

查看当前位置是否已经有了解压后的文件夹。确定后

重命名该文件夹,因为原名太长了(注意加粗的版本号,以你下载的为准)。

1
mv frp_0.38.0_linux_amd64 frps

现在,这个文件夹从frp_0.38.0_linux_amd64被重命名为frps。后面打起来容易多了。

使用cd指令进入文件夹

1
cd frps

根据知乎大佬提示,进入后需要:

1
2
# 确保 frps 程序具有可执行权限
chmod +x frps

无误后,使用vi编辑器打开配置文件:

1
vi frps.ini

这时,你会发现该页面无法编辑。因为vi默认进入了命令模式。输入i进入编辑模式。按照下面的格式自由发挥:(使用时把#后的和括号里的东西去掉)

1
2
3
4
5
6
7
8
9
10
11
12
[common]
# frp 服务端端口
bind_port = 7000(随便设置,如不冲突,可以直接用7000)
# frp 服务端密码
token = 12345678(随便设置,建议别用12345678)
#超时控制,0即是无超时控制
authentication_timeout = 0
# 仪表盘端口,后面在浏览器输入你的ip:这个端口可以进入管理面板
dashboard_port = 7500(随便设置,如不冲突,可以直接用7500)
# 仪表盘访问的用户名密码
dashboard_user = admin(随便设置)
dashboard_pwd = admin(随便设置)

输入完上面的东西后,需要保存并退出vi编辑器:另起一行,输入

1

不要回车也不要空格,紧接着输入

1
w

意思是保存该文稿

然后以同样的方式输入:q,意思是退出vi。

退出后输入

1
./frps -c frps.ini

意思是启动frp服务端。

正常情况下,此时已经可以通过浏览器访问控制面板了!

另:如果不行,请自行检查防火墙策略

输入sudo vim /lib/systemd/system/frps.service ,在 root/lib/systemd/system 下面新建一个文件frps.service,并在文件里面写入以下内容:

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=frps daemon

[Service]
Type=simple
#此处把/root/frp_linux_arm64替换成 你的frps的实际安装目录
ExecStart=/root/frp_linux_arm64/frps -c /root/frp_linux_arm64/frps.ini

[Install]
WantedBy=multi-user.target

服务端的配置告一段落,随后是内网客户端:

GitHub上下载Windows版本源文件。解压,保留frpc.exe和frpc.ini两个文件,放在一起。(建议放在Windows的用户目录,方便进一步操作)

用记事本打开frpc.ini,按如下格式配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[common]
# 服务器公网地址
server_addr = xxx.xx.xxx.xx(在这里输入你服务器的公网IP)
# 端口
server_port = 7000(使用前面设置的第一个端口)
# frp 服务端密码(与服务端相同)
token = 12345678

[rd] (随便起一个,要求英文)
# 类型
type = tcp(远程桌面连接是tcp型,其余的自行搜索)
# 本地地址(通常情况下默认127.0.0.1即可)
local_ip = 127.0.0.1
# 本地端口(3389是远程默认端口,如果修改过填写修改后的)
local_port = 3389
# 线上对外暴露端口(后面使用时填写的端口,不冲突即可)
remote_port = 33891

填写完成后保存。

然后,不要双击exe文件!!!

win+R,输入cmd,开启命令行

使用cd指令进入该目录,执行:

1
./frpc.exe -c frpc.ini

如图所示:

出现success字样提示后,代表内网穿透已经完成。使用时,可以最小化,不要关闭该窗口,否则会导致服务停止。

pc name处填写服务器公网IP,:后填写在客户端设置的remote_port

如使用远程桌面连接,请在pc name处填写服务器公网IP,:后填写在客户端设置的remote_port

至此,内网穿透的配置正式结束了!