当我们想使用 Windows 自带的 mstsc 远程桌面连接远程电脑时,常见的情况由于远程电脑没有公网IP而连接失败,这时就需要一个拥有公网 IP 的 VPS 来做代理,实现内网穿透,也就是相当于一个桥梁,将目标内网的机器与我们当前机器连起来。像花生壳,Teamviewer 等这类软件都可以实现,远程桌面,但是要么费用比较高,要么免费版体验很差,所以这里我们购买一台廉价的 VPS,使用 frp 来做这个代理功能,更方便,更好用。

1. 在VPS和目标机器上分别下载 frp

frp Github: https://github.com/fatedier/frp,通常下载最新的 Release 版本就可以。

2. 在VPS上配置服务器端

在服务器端,用的是 frps.exe,配置文件是 frps.ini,配置内容如下即可。

1
2
3
4
5
6
[common]
bind_port = 7000

dashboard_user = jack
dashboard_pwd = jack'svps
dashboard_port = 8888

上面的配置中, bind_port = 7000 就是配置对外开放的端口,客户端都会连接服务器的这个端口。下面三行的配置是网页的管理页面,可以通过网页查看当前有多少设备连接。

配置完成后,打开 CMD 或 PowerShell,执行 frps.exe -c frps.ini 就启动了服务器端,注意这个窗口不要关闭。

3. 在目标机器上配置客户端

客户端使用的是 frpc.exe,配置文件是 frpc.ini,配置内容如下

1
2
3
4
5
6
7
8
9
[common]
server_addr = 110.112.110.112
server_port = 7000

[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 12001

上面的配置中,server_addr 就是我们服务器的 IP 地址,server_port 就是我们在服务器端配置的对外端口。下面的RDP,就是配置远程桌面的,local_ip 不用修改,local_port 也不用修改,remote_port,修改成自己喜欢的端口,其他机器连接当前机器时,会在服务器 IP 后面加上这个端口,用于区分连接的是哪台机器,也就是说,这个端口,就是这台机器的标识。

配置完成后,打开 CMD 或 PowerShell,执行 frpc.exe -c frpc.ini 就启动了客户端,注意这个窗口不要关闭。

4. 建立连接

通过另一台机器,想连接我们上面配置的那台机器时,只要在 mstsc 中输入 110.112.110.112:12001 就可以建立连接。

5. 配置多台内网机器

如果我们想再配置一台内网的机器,也只需要再配置一个客户端即可,但是要修改一下 RDP 的名字,不能与已有的名字相同,例如可以使用 RDP1,另外,remote_port 也要唯一,不能使用已经存在的,因为这个相当于机器的标识。例如下面的配置,我们可以使用 RDP1 和端口 12002

1
2
3
4
5
6
7
8
9
[common]
server_addr = 110.112.110.112
server_port = 7000

[RDP1]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 12002