RustDesk是一个远程控制工具,开源跨平台,可以使用官方的服务器,也可以自建服务器使用。服务器分为开源版oss和付费版pro,我使用的是开源版。

部署服务器

服务端是Golang开发的,单文件直接运行即可。你可以使用你喜欢的进程管理工具来管理,比如nodejs写的pm2, Python写的supervisor, 或者使用docker运行,我选择docker。

启动命令

1
2
3
4
5
6
7
8
9
10
11
docker run -td --name hbbs \
-v ./data:/root \
--net=host \
--restart unless-stopped \
rustdesk/rustdesk-server hbbs

docker run -td --name hbbr \
-v ./data:/root \
--net=host \
--restart unless-stopped \
rustdesk/rustdesk-server hbbr

文件说明

data目录(容器内的root目录)下的文件:

文件名 说明
db开头的文件 都是SQLite数据库文件
id_ed25519 私钥
id_ed25519.pub 公钥,文件内容就是客户端需要的key

网络端口

我使用了host网络,如果使用bridge网络(docker默认网络),需要映射以下端口

hbbs服务

端口 类型 说明
21115 tcp used for the NAT type test
21116 tcp used for TCP hole punching and connection service
21116 udp used for the ID registration and heartbeat service
21118 tcp web使用(开源版本暂时没有web页面)

hbbr服务

端口 类型 说明
21117 tcp used for the Relay services
21119 tcp web使用(开源版本暂时没有web页面)

客户端配置

设置 –> 网络 里面配置 ID 服务器, ID 服务器填 你的服务器 IP:21116 或者直接填写域名,端口默认就是21116

key可以填可以不填, 不填的话, 连接不能加密。key在hbbs服务的控制台日志里有, cat id_ed25519.pub 也可以看到key

image.png

到此为止就已经可以使用了

安全性

考虑到上面配置不加密的话,任何人配置上了我的服务器地址都可以使用我的服务了(连接我的电脑还需要id和密码),不太安全,所以建议开启加密连接。

hbbrhbbs增加启动参数 -k _, docker启动命令为:

1
2
3
4
5
6
7
8
9
10
11
docker run -td --name hbbs \
-v ./data:/root \
--net=host \
--restart unless-stopped \
rustdesk/rustdesk-server hbbs -k _

docker run -td --name hbbr \
-v ./data:/root \
--net=host \
--restart unless-stopped \
rustdesk/rustdesk-server hbbr -k _

这个时候再次尝试连接:
image.png

配置了正确的key后,可以正常使用。

常见问题

第一次无法连接

可以尝试强制中继服务器连接, 只需要在id后面加上/r 即可。如
image.png

连接成功后,可以打开 强制走中继连接