[技术分享] 使用 FRP 反向代理实现 Windows 远程连接

什么是 FRP

FRP (Fast Reverse Proxy) 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP , UDP , HTTP , HTTPS 协议。下载https://github.com/fatedier/frp/releases

 

准备工作

1. 一台拥有公网 IP 的设备(云服务器、VPS ……)

这就是一台反向代理服务器,作为外网设备访问内网设备的一座桥梁。

2. 域名(可选)

如果你不想输入一大串 IP 地址的话,买个好记的域名吧。

安装 FRP

这里反向代理服务器使用的是阿里云的云服务器,安装 Windows Server 2016 Datacenter 。内网要远程连接的设备安装的是 Windows 10 1803 。如果使用的是 Linux 系统的服务器,只是 FRP 的安装过程不同,可以百度一下其他 FRP 的文章进行参考。考虑到如果只是用服务器进行反向代理的话,没有必要购买 Windows 服务器,因为相比于 Linux ,运行 Windows 的配置要高一些,价格也更贵一些。

下载链接在文章的开头已经给出,根据服务器的系统和处理器类型选择,这里选择 frp_0.20.0_windows_amd64.zip ,下载完成后解压。

 20.jpg

服务器(frps)

1、首先要配置一下入方向的安全组规则,需要穿透的端口得放行,我这里直接开放了一个端口范围,一劳永逸,各位按需开放即可。

21.jpg

2、接下来配置一下设置,解压后有两个配置文件,一个是 frps.ini 另一个是 frps_full.ini 。 frps_full.ini 是全配置,里面所有的配置都有,玩法很多,各位自行研究,这里只挑几个有用的。将下面配置代码复制到 frps.ini 后保存。控制台可以输入“服务器IP:端口号”进行访问,如“1.2.3.4:7500”。
```ini
[common]
bind_port = 7000 ;要绑定的端口

dashboard_user = admin ;控制台的用户名
dashboard_pwd = password ;控制台的密码
dashboard_port = 7500 ;控制台的端口
```

3、然后把配置文件 frps.ini 与程序 frps.exe 复制到服务器。

4、最后使用 cmd 或 power shell 切换到相应目录运行即可
ini frps -c frps.ini
power shell 要使用
ini .\frps.exe -c frps.ini

内网设备(frpc)

  1. 首先配置一下 frpc.ini
    ```ini
    [common]
    server_addr = 1.2.3.4 ;服务器的 IP
    server_port = 7000 ;服务器上设置的服务绑定端口

    [RDP] ;这个是反向代理的名称,可以随意设置
    type = tcp ;RDP 是 TCP 协议的
    local_ip = 127.0.0.1 ;本机 IP
    local_port = 3389 ;远程桌面的默认端口
    remote_port = 7001 ;外网访问的端口
    ```

  2. 然后把配置文件 frpc.ini 与程序 frpc.exe 复制到内网设备。

  3. 最后使用 cmd 或 power shell 切换到相应目录运行即可
    ini frpc -c frpc.ini
    power shell 要使用
    ini .\frpc.exe -c frpc.ini

 

内网设备开启远程桌面

右击“此电脑”,选择“系统”——“远程设置”——“允许远程连接至此电脑”

22.jpg

运行远程桌面

在小娜或运行中输入“mstsc”或“远程桌面连接”,“计算机”中输入“服务器 IP:外网访问端口”,如“1.2.3.4:7001”。不出意外的话,是可以从外网访问到内网设备的。

23.jpg

绑定域名

1、这里域名的服务商是阿里云(万网),在域名控制台中对相应的域名选择“解析”。跳转到云解析界面后点击“添加记录”。我们需要添加一条类型为 A 的记录。记录值为服务器 IP。

24.jpg

2、配置 frpc.ini 。加一行 custom_domains = xxx.yourdomain.xxx 。如
ini [RDP] ;这个是反向代理的名称,可以随意设置 type = tcp ;RDP 是 TCP 协议的 local_ip = 127.0.0.1 ;本机 IP local_port = 3389 ;远程桌面的默认端口 remote_port = 7001 ;外网访问的端口 custom_domains = xxx.yourdomain.xxx

这样就能使用 “你的域名:端口” 进行远程桌面连接了。

 

总结

FRP 的玩法很多,如果你的路由器是智能路由器的话,可以将 FRP 部署到你的路由器上,也可以搭建 NAS ,甚至将内网部署的 WEB 应用映射到外网(当然,在国内这是违法的,有条件的话还是要备案一下)等等。 但体验指数上完完全全取决于你的云服务器宽带。 内网穿透,反向代理,都只是弥补没有公网 IP 的遗憾罢了。

转自:使用 FRP 反向代理实现 Windows 远程连接