TeamViewer 替代品:使用 frp 实现 Windows 远程桌面连接教程

搭一个 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 和绑定的端口),之后输入用户名和密码就能成功远程了。