这里有另一个很好的教程:Building Your Own Remote Desktop Solution: RustDesk Self-Hosted on Cloud with Docker (Hetzner)
使用 Docker 安装您自己的服务器
要求
您需要安装 Docker/Podman 才能将 rustdesk-server 作为 Docker 容器运行。如有疑问,请使用此指南安装 Docker,以确保它是最新的!
确保在防火墙中打开这些端口:
hbbs
:21114
(TCP): 用于网页控制台,仅在Pro
版本中可用。21115
(TCP): 用于 NAT 类型测试。21116
(TCP/UDP): 请注意21116
应该同时为 TCP 和 UDP 启用。21116/UDP
用于 ID 注册和心跳服务。21116/TCP
用于 TCP 打洞和连接服务。21118
(TCP): 用于支持网页客户端。
hbbr
:21117
(TCP): 用于中继服务。21119
(TCP): 用于支持网页客户端。
如果您不需要网页客户端支持,可以禁用相应的端口 21118
、21119
。
Docker 示例
sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbs
sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbr
--net=host
仅在 Linux 上有效,这使得 hbbs
/hbbr
看到真实的传入 IP 地址而不是容器 IP (172.17.0.1)。
如果 --net=host
工作正常,则不使用 -p
选项。如果在 Windows 上,请省略 sudo
和 --net=host
。
如果您在您的平台上遇到连接问题,请移除 --net=host
。
如果您无法使用 -td
看到日志,可以通过 docker logs hbbs
查看日志。或者您可以使用 -it
运行,hbbs/hbbr
不会作为守护进程模式运行。
Docker Compose 示例
要使用这里描述的 compose.yml
运行 Docker 文件,您需要安装 Docker Compose。
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
如果您需要进行配置更改,例如设置 ALWAYS_USE_RELAY=Y,可以在 docker-compose.yml 中使用 environment
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
environment:
- ALWAYS_USE_RELAY=Y
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
Podman Quadlet 示例
如果您想使用 Podman 作为 systemd 服务运行容器,可以使用这些示例 Podman Quadlet 配置:
[Container]
AutoUpdate=registry
Image=ghcr.io/rustdesk/rustdesk-server:latest
Exec=hbbs
Volume=/path/to/rustdesk-server/data:/root
Network=host
[Service]
Restart=always
[Install]
WantedBy=default.target
或者
[Container]
AutoUpdate=registry
Image=ghcr.io/rustdesk/rustdesk-server:latest
Exec=hbbr
Volume=/path/to/rustdesk-server/data:/root
Network=host
[Service]
Restart=always
[Install]
WantedBy=default.target
RustDesk自建服务器完整操作指南(Docker方式)
准备工作
服务器要求:
- 一台具有公网IP的Linux服务器(推荐Ubuntu 20.04/22.04,1核1GB内存即可)。
- 带宽建议2Mbps以上,低延迟(如国内云厂商:腾讯云、阿里云)。
- 已安装Docker和Docker Compose。
端口要求:
- hbbs(ID服务器):
- TCP:21115(NAT类型测试)、21116(TCP打洞/连接服务)、21118(网页客户端,Pro版可选)。
- UDP:21116(ID注册和心跳服务)。
- hbbr(中继服务器):
- TCP:21117(中继服务)、21119(网页客户端,Pro版可选)。
- 注意:若不使用网页客户端,可忽略21118和21119端口。
- hbbs(ID服务器):
安装Docker(若未安装):
sudo apt update sudo apt install -y docker.io sudo systemctl start docker sudo systemctl enable docker
安装Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
开放防火墙端口:
- 使用UFW(若启用):
sudo ufw allow 21115:21118/tcp sudo ufw allow 21116/udp sudo ufw enable
- 在云服务商(如阿里云、腾讯云)安全组中,添加规则允许上述端口的TCP和UDP流量。
- 使用UFW(若启用):
步骤一:部署RustDesk服务器
拉取RustDesk服务器镜像:
sudo docker image pull rustdesk/rustdesk-server
创建Docker Compose配置文件:
创建工作目录并编辑docker-compose.yml
:mkdir rustdesk cd rustdesk nano docker-compose.yml
粘贴以下内容:
services: hbbs: container_name: hbbs image: rustdesk/rustdesk-server:latest command: hbbs -r <your_server_ip>:21117 volumes: - ./data:/root network_mode: "host" depends_on: - hbbr restart: unless-stopped hbbr: container_name: hbbr image: rustdesk/rustdesk-server:latest command: hbbr volumes: - ./data:/root network_mode: "host" restart: unless-stopped
- 将
<your_server_ip>
替换为服务器公网IP或域名。 - 说明:
network_mode: "host"
使容器使用主机网络,确保hbbs/hbbr接收真实IP地址(仅Linux支持)。- 若需强制加密,可在
command
后添加-k _
(如hbbs -r <your_server_ip>:21117 -k _
)。 - 若需强制中继连接,添加环境变量:
environment: - ALWAYS_USE_RELAY=Y
- 将
启动服务:
sudo docker compose up -d
- 这将启动
hbbs
(ID服务器)和hbbr
(中继服务器)。 - 数据(如公钥)保存在
./data
目录。
- 这将启动
验证服务运行:
sudo docker ps
确保
hbbs
和hbbr
容器状态为Up
。
查看日志以排查问题:sudo docker logs hbbs sudo docker logs hbbr
获取公钥(Key):
服务启动后,查看./data/id_ed25519.pub
中的公钥:cat ./data/id_ed25519.pub
记录公钥(如
C6bJn7...50nCK3y4=
),用于客户端配置。
步骤二:配置RustDesk客户端
下载客户端:
从RustDesk官方GitHub下载客户端(支持Windows、macOS、Linux流的RustDesk客户端Linux、Android、iOS):https://github.com/rustdesk/rustdesk/releases。配置客户端:
- 打开RustDesk客户端,点击ID旁边的菜单([⋮]),选择“网络”。
- 解锁设置(需要管理员权限)。
- 输入以下信息:
- ID服务器:
<your_server_ip>:21116
- 中继服务器:
<your_server_ip>:21117
(可留空,自动推导)。 - 密钥(Key):输入步骤一中的公钥。
- ID服务器:
- 点击“应用”保存。
验证连接:
- 在主界面输入远程设备ID,尝试连接。
- 状态栏显示“就绪”表示配置成功。
- 连接成功后,绿色图标显示P2P或中继状态。
步骤三:测试与优化
测试连接:
- 使用另一台设备的RustDesk客户端,输入ID进行连接测试。
- 若连接失败,检查:
- 防火墙/安全组是否开放必要端口。
- 客户端配置的IP和密钥是否正确。
- 日志(
docker logs hbbs/hbbr
)是否有错误。
优化建议:
- 带宽:办公用途约需100Kbps,高清画面需1-3Mbps,建议服务器带宽≥3Mbps。
- 画质:在客户端降低分辨率/帧率以减少带宽占用。
- 加密:启用
-k _
强制密钥认证,提高安全性。 - 域名:使用域名替换IP,提高灵活性。
- 日志查看:若需调试,使用
docker logs
命令查看服务日志。
连接问题处理:
- 若
--net=host
导致问题,移除network_mode: "host"
,改用端口映射:
在ports: - 21115:21115 - 21116:21116 - 21116:21116/udp - 21118:21118
hbbr
服务中添加:ports: - 21117:21117 - 21119:21119
- 若
常见问题
无法连接:
- 确认端口21115-21119(TCP)和21116(UDP)已开放。
- 检查公钥是否正确。
- 确保
hbbs
和hbbr
服务正常运行。
延迟高:
- 选择低延迟的服务器(如本地云厂商)。
- 降低客户端画质设置。
安全性:
- RustDesk使用端到端加密(TLS 1.3),中继服务器无法解密数据。
- 强制密钥(
-k _
)可防止未授权访问。
日志查看:
- 使用
docker logs hbbs
或docker logs hbbr
检查服务状态。
- 使用