公众号旧文

把自己的 RustDesk 服务器分享给朋友使用

作者:胖子阅读 —

之前写过一篇文章:远程控制不求人 之 搭建 RustDesk 服务器

当时的目标很简单:

不受 TeamViewer 的限制,也不用依赖第三方远控平台。

自己购买一台 VPS,部署 RustDesk Server,自己的电脑、手机都连接自己的服务器,实现稳定、高清、流畅的远程控制。

一年过去了,这套 RustDesk 服务一直稳定运行。

于是产生了一个新的想法:

为什么不把自己的 RustDesk 服务器分享给朋友使用?

让更多人拥有一个不受限制、速度稳定、隐私更好的远程控制环境。

下面记录一下,把私人 RustDesk Server 变成一个可共享服务的过程。

一、为什么搭建公共 RustDesk

目前常见的远程控制软件:

  • TeamViewer
  • AnyDesk
  • ToDesk
  • 向日葵

虽然功能完善,但是都有一些限制:

例如:

  • 免费用户限制连接时间
  • 商业检测误判
  • 高级功能收费
  • 数据经过第三方服务器

对于个人用户来说,偶尔远程自己的电脑没有问题。

但是如果需要长期控制:

  • 家里的电脑
  • 公司电脑
  • 父母电脑
  • NAS
  • 服务器

自建 RustDesk 是一个不错的方案。

二、RustDesk 工作原理

自建 RustDesk 服务器,是不是所有远程画面都会经过我的服务器?

实际上不是。

RustDesk 采用类似 P2P 的架构。

整体结构:

控制端
  |
  |
 RustDesk Server
  |
  |
被控制端

服务器主要负责:

1. ID Server(hbbs)

负责:

  • 注册设备 ID
  • 查询设备位置
  • NAT 穿透
  • 建立连接

2. Relay Server(hbbr)

当两个设备无法直接连接:

例如:

  • 双方 NAT
  • 公司网络限制
  • 运营商封锁

则通过 Relay 中转

因此大部分情况下:

A ←──────→ B

服务器只负责协调。

只有无法 P2P 时:

A
 |
 |
服务器中转
 |
 |
B

三、准备服务器

RustDesk 对服务器要求并不高。

最低配置:

CPU:1核
内存:512MB
硬盘:10GB
带宽:100Mbps

即可满足个人和小规模使用。

如果只是自己 + 几个朋友,那更低配置也可以。

四、绑定域名

公网 IP 虽然可以使用,但是长期分享不推荐。

如果未来:

  • 更换服务器
  • 更换机房
  • IP变化

所有用户都需要重新修改配置。

所以建议绑定域名。

例如,购买一个域名:

example.com

添加 DNS:

A记录
rustdesk.example.com
↓
服务器公网IP

之后客户端填写:

ID Server:
rustdesk.example.com
Relay Server:
rustdesk.example.com

以后换服务器,只需要修改 DNS 的解析记录。

五、查看 RustDesk Key

RustDesk 使用密钥验证服务器。

查看:

cat /var/lib/rustdesk-server/id_ed25519.pub

输出:

+xxxxxxxxxxxxxxxxxxxxxxxx=

这一串就是服务器公钥。

六、用户如何配置

用户只需要安装 RustDesk 客户端。

打开:设置 → 网络

填写:

ID Server:
rustdesk.example.com
Relay Server:
rustdesk.example.com
Key:
+xxxxxxxxxxxxxxxx=

保存。

之后输入对方 RustDesk ID,例如:

123 456 789

再输入密码,即可连接。

七、服务器安全设置

当 RustDesk 开放给别人使用后,需要考虑安全。

1. 开放必要端口

RustDesk 常用端口

TCP:

21115
21116
21117
21118

UDP:

21116

不要直接开放全部端口。

2. 开启防火墙

例如 Ubuntu:

ufw allow 21115/tcp
ufw allow 21116/tcp
ufw allow 21117/tcp
ufw allow 21118/tcp
ufw allow 21116/udp

查看:

ufw status

3. 安装 Fail2ban

防止暴力扫描:

apt install fail2ban

查看:

systemctl status fail2ban

4. 定期查看日志

例如:

journalctl -u hbbs
journalctl -u hbbr

关注:

  • 异常连接
  • 大量 Relay
  • 异常流量

八、如何长期维护

一个长期运行的 RustDesk 服务,需要几个维护项目。

1. 监控服务状态

查看:

systemctl status hbbs
systemctl status hbbr

确保:

active (running)

2. 设置开机启动

检查:

systemctl enable hbbs
systemctl enable hbbr

服务器重启后,服务自动恢复。

3. 定期备份 Key

最重要的文件:

/var/lib/rustdesk-server/

尤其:

id_ed25519
id_ed25519.pub

如果丢失,所有客户端 Key 都需要重新配置。

4. 关注服务器流量

例如安装:

vnstat

查看:

vnstat

了解每天/月流量。

九、我的 RustDesk 分享方案

目前计划提供一个免费的 RustDesk 节点。

配置:

服务器:
阿里云北京节点
地址:
rustdesk.851004721.xyz
状态:
378天

适合:

  • 个人远程
  • 家庭设备管理
  • NAS控制
  • 服务器维护

总结

RustDesk 最大的价值,不是替代 TeamViewer。

而是把远程控制的基础设施掌握在自己手里。

购买 VPS

↓

部署 RustDesk

↓

绑定域名

↓

提供服务

↓

监控维护

就是一个完整的小型互联网服务。

以前搭建 RustDesk,只是为了自己方便。

现在把它分享出去,则是让自己的服务器能力,服务更多人。

这也是个人玩家玩 VPS 的一个很有意思的方向。