搭一个 frp 反向代理来当作 Windows 远程桌面,亲测速度还不错,本文分享下搭建教程。
目录
一、frp 介绍
项目地址:https://github.com/fatedier/frp
FRP (Fast Reverse Proxy) 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP , UDP , HTTP , HTTPS 协议,可以实现 Windows 远程桌面搭建。通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
- 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
- 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
- 代理组间的负载均衡。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
- 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
使用体验:搭建好了 frp,用了下远程桌面,发现速度比 AnyDesk 快不少,跟 TeamViewer 差不多,TeamViewer 最近商业化查的越来越严了,明明是自用,也会提醒你商业使用,所以搭建一个 frp 服务器作为替代(备用)还是很有必要的。
完整文档: https://gofrp.org
二、准备工作
需要:
一般服务器都是 Linux 系统的,目前最新版本是 0.38.0,直接下载对应的版本,然后解压,至此,你会得到一个 frp_0.38.0_linux_amd64 的文件夹,进入文件夹:
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
tar -zxvf frp_0.38.0_linux_amd64.tar.gz
cd frp_0.38.0_linux_amd64
作为服务器端,你只需要关心 2 个文件:frps,frps.ini,其中 frps 是运行程序,frps.ini 是配置文件。
修改 frps.ini (如果不会用 vim 编辑器,可以参考《Linux下使用vim编辑以及新建文件》):
vi frps.ini
文件内容如下:
[common]
bind_port = 7000
dashboard_port = 7500
token = laowang
dashboard_user = laowang
dashboard_pwd = laowang_pwd
这里主要是配置了绑定的端口(7000),控制面板的端口(7500),token(会在客户端用到),控制面板的 user 用户名和 pwd 密码。
运行 frp 客户端:
./frps -c frps.ini
如果没有问题的话,就会直接运行成功了:
这时我们就能访问控制面板了(http://IP地址:7500):
可以借助 nohup 后台运行 frps,命令如下:
nohup ./frps -c frps.ini > /root/frp/log.log 2&1 &
四、frp 客户端配置
下载地址:https://github.com/fatedier/frp/releases
同样是下载 releases,以 Windows 为例,下载与服务器端对应版本的 frp_0.36.2_windows_amd64.zip。
作为客户端端,你只需要关心 2 个文件:frpc,frpc.ini,编辑 frpc.ini 文件,加入如下内容:
[common]
server_addr = 47.240..
server_port = 7000
token = laowang
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001
[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7002
“server_addr”是服务端 IP 地址,填入即可,“server_port”为服务器端口,即 bind_port 的值,“token”是你在服务器上设置的连接口令。
这里用到了 2 个自定义规则,一个是 rdp,一个是 smb:
RDP,即 Remote Desktop 远程桌面,Windows 的 RDP 默认端口是 3389,协议为 TCP,本条规则可以实现远程桌面连接。
SMB,即 Windows 文件共享所使用的协议,默认端口号 445,协议 TCP,本条规则可实现远程文件访问。
打开 cmd,进入 frp 的目录,执行如下命令运行 frp 客户端(不能双击 frpc.exe):
frpc -c frpc.ini
结果如下所示:
之后开启 Windows 远程访问:Windows 开启远程访问,直接直接在本地远程连接即可,地址就是 IP地址:7000 (服务器 IP 和绑定的端口),之后输入用户名和密码就能成功远程了。