前言
曾经尝试过很多远控方案,包括但不限于向日葵、Todesk、Anydesk、Anyviewer、连连控等,但所有的方案都回归到一个问题:钱。那有没有什么便宜又好用的方案呢?
免费方案
目前市面上比较主流的方案有以下几种:
- UU远程:真·免费,安装使用最简单,支持 UDP P2P 打洞,支持 4k120hz 显示,对于绝大多数人来说,这就是 Endgame。但对我并非如此,因为公司的网络是“对称型 NAT”,导致 P2P 打洞非常难成功(偶尔会成功),且目前由于推广使用的人数过多,导致网易的服务器不堪重负,经常出现只能使用720P-30帧或延迟飙升的情况。另外,这款软件不支持 Linux ,这让我的老电脑无所适从。
- Sunshine + Moonlight:初衷为了玩游戏而设,但相对部署复杂,若多台电脑同时需要当作被控端与主控端时,就都需要安装 Sunshine 和 Moonlight。另外该软件本身不带 P2P 打洞功能,所以需要配合其他组网软件共同使用。组网设备少(2台)的时候尚可管理,超过3台就会出现许多重复节点,筛选去重还需要一段时间。
- Rustdesk:属于开源版本的 Teamviewer,采用 ID + 中心服务器化管理,允许局域网内直接输入 IP 进行连接,且有第三方实现的 API ,可以自行创建账号。且这个软件自带打洞功能,如果网络条件不是特别恶劣的情况下都能打洞成功,但打洞失败的情况下只能通过国外的中转服务器连接,而近几年使用Rustdesk 实施诈骗的犯罪行为猖獗,也让官方直接封禁了中国大陆 IP 连接中转服务器的功能。不过只要能局域网输入 IP 直接连接,就为我们下面的方案提供了方便。
什么是 NAT
在正式开始介绍方案之前,还需要介绍一下选择当前这套方案的原因,这就是 NAT 打洞
此处借Astral 的教程进行解释
目前家用宽带普遍 NAT 类型为受限型 NAT或端口受限型NAT,相对于全开放NAT来说肯定连接性能要大打折扣,而我的公司网络 NAT 类型为对称型NAT,属于常见网络中最难实现 P2P 连接的网络类型(不过移动宽带常见此类型)
| NAT 类型 | 含义说明 | 连接质量 |
|---|---|---|
| 开放网络(OpenInternet) | 设备直接连接互联网,无 NAT 转换 | ⭐⭐⭐⭐⭐ |
| 无PAT(NoPat) | 没有端口地址转换,类似开放网络 | ⭐⭐⭐⭐⭐ |
| 全锥形(FullCone) | 只要设备主动连接过外部,外部就能随时连接回来 | ⭐⭐⭐⭐ |
| 受限锥形(Restricted) | 只有设备主动联系过的 IP 才能连接回来 | ⭐⭐⭐ |
| 端口受限锥形(PortRestricted) | 只有设备主动联系过的 IP 和端口才能连接回来 | ⭐⭐⭐ |
| 对称型(Symmetric) | 每次连接外部都使用不同端口,P2P 连接最困难 | ⭐⭐ |
| 对称递增型(SymmetricEasyInc) | 端口号递增分配,穿透难度比普通对称型低 | ⭐⭐ |
| 对称递减型(SymmetricEasyDec) | 端口号递减分配,穿透难度比普通对称型低 | ⭐⭐ |
此处不讨论校园网专供的阻断UDP通信的防火墙
实施方案
最终决定的方案为:easytier(组网穿透) + rustdesk(远程桌面)
好处是:部署简单(支持多端GUI部署),连接稳定(不会乱跳 IP 导致无法连接)
坏处是:一旦无法穿透则需要走公网中转,极慢
具体部署方案:
- 安装 Astral客户端,包含Windows、MacOS、Linux(deb/rpm)的安装包
- 安装 Rustdesk客户端,可安装Windows、Linux等平台客户端
- 在 Astral 中创建一个房间,用于私人连接(名称随意)

- 点击“连接”

- 在“房间中”寻找其他设备的“内网IP”(也可以在连接前在主页设定好),这时候可以查看一下与其他设备的连接状况,是直连还是中转

- 在 Rustdesk 中输入需要连接设备的“内网IP”,点击连接并输入密码后,即可进行连接
最终效果
如图,可以看到左上角连接是红色的盾牌,代表采用了 P2P 直连,而不是中转服务器
评论