告别远程卡顿:手把手教你Docker部署RustDesk私有中继服务器
本文教你如何用 Docker Compose 快速部署 RustDesk 中继服务器,并配置各平台客户端。
大家好,我是 MarkYe,码客研究所的主理人。
今天我们继续《自建之道·私有化部署篇》系列。今天带来优雅的私有化远程解决方案——使用Docker Compose一键部署,并解决多平台客户端的配置问题。
🚀 Docker Compose:配置即部署
对于需要部署多个关联服务的场景,Docker Compose 是比手动运行 docker run 更优雅的选择。它通过一个YAML文件定义所有服务,实现一键启动、停止和管理。
rustdesk/rustdesk-serve镜像,请关注公众号【码客研究所】回复『rustdesk』获取。
码客金句:好的工具让复杂变简单,而优秀的配置让简单变优雅。
下面是完整的 docker-compose.yml 配置文件:
yaml
version: '3'
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs -r 你的域名或IP -k 你的密钥
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr -k 你的密钥
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
配置文件详解:
- 版本声明:
version: '3'指定使用的Compose文件格式版本 - 服务定义:
-
hbbs:信令服务器,负责客户端发现和连接协调hbbr:中继服务器,负责数据转发
- 关键参数:
-
network_mode: "host":使用主机网络模式,适用于纯内网环境restart: unless-stopped:自动重启,除非手动停止depends_on:确保hbbr先启动,hbbs再启动
重要说明:
- 将
你的域名或IP替换为你的公网地址或域名 - 将
你的密钥替换为自定义的安全密钥(两端相同) network_mode: "host"仅在Linux主机且无端口映射时使用
部署步骤:
bash
# 1. 创建项目目录
mkdir rustdesk-server && cd rustdesk-server
# 2. 创建docker-compose.yml文件(内容如上)
vim docker-compose.yml
# 3. 启动服务
docker-compose up -d
# 4. 查看运行状态
docker-compose ps
# 5. 查看日志
docker-compose logs -f
📱 多平台客户端配置指南
服务器部署好后,各平台客户端的正确配置同样重要。下面分别介绍Windows和Android客户端的配置方法。
Windows客户端配置
- 下载安装:
-
- 从RustDesk官网(https://rustdesk.com/)下载Windows客户端
- 安装并运行,界面简洁,无广告干扰
- 配置服务器地址:
-
- 点击客户端右下角「菜单」→「设置」
- 选择「网络」选项卡
- 在「ID服务器」填写你的服务器地址(域名或IP)
- 关键:端口号默认为21116,确保与服务器配置一致
- 密钥配置(可选但推荐):
-
- 在同一设置页面,找到「加密」选项
- 输入服务器部署时设置的密钥
- 这将启用端到端加密,保障远程连接安全
- 保存并重启:
-
- 点击「应用」→「确定」
- 重启RustDesk客户端使配置生效
技巧:Windows客户端支持设置开机自启和后台运行,适合作为远程维护工具常驻运行。
Android客户端配置
- 安装应用:
-
- 请关注公众号【码客研究所】回复『rustdesk』获取。
- 安装后打开应用,授予必要权限
- 服务器配置:
-
- 点击右上角「三个点」→「设置」
- 进入「网络设置」
- 在「ID服务器」字段输入你的服务器地址
- 高级配置:
-
- Android端同样支持密钥配置
- 可设置屏幕常亮、关闭锁屏等优化选项
- 支持触控模式和指针模式切换
- 连接测试:
-
- 配置完成后,在另一设备尝试连接
- Android作为被控端时,会提示确认连接请求
注意:Android客户端在某些设备上可能需要额外的无障碍权限,按提示开启即可。
🔧 防火墙与端口配置
无论使用哪种部署方式,端口配置都是关键环节:
bash
# 必需端口(确保防火墙放行)
# TCP: 21115-21119
# UDP: 21116
# 如果使用ufw(Ubuntu)
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
# 如果使用firewalld(CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=21115-21119/tcp
sudo firewall-cmd --permanent --add-port=21116/udp
sudo firewall-cmd --reload
📊 端口功能速查表
| 端口 | 协议 | 服务 | 是否必需 | 说明 |
|---|---|---|---|---|
| 21116 | TCP/UDP | hbbs | 必需 | 核心服务端口 |
| 21117 | TCP | hbbr | 必需 | 中继数据传输 |
| 21115 | TCP | hbbs | 推荐 | NAT类型检测 |
| 21118-21119 | TCP | hbbs/hbbr | 可选 | 网页客户端支持 |
❓ 常见问题 FAQ
Q:为什么推荐使用域名而不是IP?
A:域名更稳定,即使服务器IP变更也无需重新配置所有客户端。
Q:Android客户端无法保持后台运行?
A:这是Android系统限制,建议在手机设置中将RustDesk加入电池优化白名单。
Q:如何验证服务器配置正确?
A:访问 http://你的服务器:21115,能看到RustDesk服务信息即表示运行正常。
Q:Docker Compose和直接docker run有什么区别?
A:Compose更适合多服务管理,配置文件更清晰,且便于版本控制和团队协作。
Q:Windows和Android能互控吗?
A:完全可以!RustDesk支持全平台互控,包括Windows、macOS、Linux、Android、iOS。
🌟 部署心得
通过Docker Compose,我们将复杂的服务部署简化为一个配置文件。配合多平台客户端的正确配置,一套完整的私有远程控制方案就此成型。
技术之美,在于化繁为简;部署之妙,在于一次配置,处处可用。
无论你是运维工程师需要远程维护服务器,还是普通用户想要远程协助家人,这套方案都能满足需求。
📢 安卓安装包和rustdesk-server镜像,请关注公众号【码客研究所】回复『rustdesk』获取。
📲 扫码关注,每天进步一点点,让你上班少加班,下班早回家!










