远程桌面工具在当今远程办公环境中扮演着重要角色。市面上虽有不少选择,但在体验和隐私方面往往存在不足。RustDesk作为一款开源的远程桌面解决方案,提供了自建服务器的能力,让用户完全掌控自己的数据。本文将详细介绍如何使用Docker部署RustDesk服务器。
准备工作
服务器部署步骤
1. 创建项目目录
首先,创建一个专门的目录用于RustDesk服务:
mkdir rustdesk && cd rustdesk
2. 创建Docker Compose配置文件
在rustdesk目录中,创建compose.yml
文件:
nano compose.yml
将以下内容复制到文件中:
services:
hbbs:
container_name: hbbs
image: docker.io/rustdesk/rustdesk-server-pro:latest
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: docker.io/rustdesk/rustdesk-server-pro:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
这个配置文件定义了两个服务:
- hbbs:处理ID注册和心跳服务
- hbbr:负责中继服务
3. 启动服务
使用Docker Compose启动服务:
docker compose up -d
命令中的-d
参数让服务在后台运行。
4. 获取密钥
RustDesk需要一个密钥来验证客户端和服务器之间的连接。有两种方法可以获取密钥:
方法1:查看生成的密钥文件
cd data/
ls
cat id_ed*.pub
系统会列出生成的文件,找到以.pub
结尾的文件并查看其内容,这就是你的公钥。
方法2:查看服务日志
docker compose logs -f
在日志输出中查找类似Key: YxxxxxxxxunU=
的行,这个值就是你的密钥。
配置防火墙
RustDesk服务器需要开放特定端口才能正常工作。根据你使用的防火墙类型,选择相应的配置方法:
使用firewalld (CentOS/RHEL/Fedora)
# 开启防火墙
systemctl start firewalld
systemctl enable firewalld
# 开放端口
firewall-cmd --permanent --add-port=21114/tcp
firewall-cmd --permanent --add-port=21115/tcp
firewall-cmd --permanent --add-port=21116/tcp
firewall-cmd --permanent --add-port=21116/udp
firewall-cmd --permanent --add-port=21117/tcp
firewall-cmd --permanent --add-port=21118/tcp
firewall-cmd --permanent --add-port=21119/tcp
# 重新加载防火墙配置
firewall-cmd --reload
# 查看已开放的端口
firewall-cmd --list-ports
使用UFW (Ubuntu/Debian)
# 启用UFW
sudo ufw enable
# 开放端口
sudo ufw allow 21114/tcp
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp
# 查看UFW状态
sudo ufw status
使用iptables
# 开放TCP端口
iptables -A INPUT -p tcp --dport 21114 -j ACCEPT
iptables -A INPUT -p tcp --dport 21115 -j ACCEPT
iptables -A INPUT -p tcp --dport 21116 -j ACCEPT
iptables -A INPUT -p tcp --dport 21117 -j ACCEPT
iptables -A INPUT -p tcp --dport 21118 -j ACCEPT
iptables -A INPUT -p tcp --dport 21119 -j ACCEPT
# 开放UDP端口
iptables -A INPUT -p udp --dport 21116 -j ACCEPT
# 保存iptables规则(根据发行版可能有所不同)
# Debian/Ubuntu:
iptables-save > /etc/iptables/rules.v4
# CentOS/RHEL:
service iptables save
端口说明
RustDesk服务器使用以下端口:
- hbbs服务:
- 21114 (TCP) - Web控制台(仅专业版)
- 21115 (TCP) - NAT类型测试
- 21116 (TCP/UDP) - ID注册、心跳服务和TCP打洞
- 21118 (TCP) - WebSocket(Web客户端)
- hbbr服务:
- 21117 (TCP) - 中继服务
- 21119 (TCP) - WebSocket(Web客户端)
重要提示:端口21116需要同时开放TCP和UDP协议。如果不需要Web客户端支持,可以不开放21118和21119端口。
客户端配置
1. 下载客户端
从RustDesk的GitHub发布页面下载适合你操作系统的客户端:
https://github.com/rustdesk/rustdesk/releases
2. 安装并配置客户端
安装完成后,按照以下步骤配置:
- 打开RustDesk客户端,进入主界面
- 找到并点击"网络"选项,解锁设置
- 选择"ID/中继服务器"选项
- 填写服务器信息:
- ID服务器:你的服务器IP:21116
- 中继服务器:你的服务器IP:21117
- 密钥:之前获取的密钥
- 点击确认保存设置
- 返回主界面,点击"启动服务"
- 服务成功启动后,界面会显示"就绪"状态
连接远程设备
在需要被控制的设备上完成上述客户端配置后,该设备会获得一个ID。在控制端设备上同样配置好服务器信息,然后使用被控设备的ID进行连接即可实现远程控制。
总结
通过本教程,你已经成功部署了自己的RustDesk服务器,并配置了客户端连接。相比使用公共服务器,自建服务器具有更好的隐私保护和数据控制能力,特别适合企业内部或对安全有较高要求的场景使用。
RustDesk作为开源软件,不断有新的功能和安全更新,建议定期检查GitHub仓库获取最新版本,以保持系统的安全性和稳定性。
参考资源
- RustDesk官方GitHub仓库:https://github.com/rustdesk/rustdesk
- RustDesk官方文档:https://rustdesk.com/docs/
📮评论