远程控制软件是日常工作中的刚需,但市面上主流的 TeamViewer、AnyDesk 等工具,商业授权费用高昂,且存在数据隐私方面的担忧。利用宝塔面板和 Docker,我们可以快速部署 RustDesk 自建远程控制服务器,实现安全、可控的远程访问。这篇【学习记录】将分享我的实践经验,助你轻松搭建自己的 RustDesk 服务。
为什么选择 RustDesk?
RustDesk 是一款开源的远程桌面软件,具有以下优点:
- 开源免费:无需担心商业授权费用,可以自由使用和修改。
- 安全可靠:支持端到端加密,数据传输安全可控。
- 跨平台支持:支持 Windows、macOS、Linux、Android、iOS 等主流操作系统。
- 功能丰富:支持文件传输、剪贴板共享、远程重启等常用功能。
准备工作
- 一台拥有公网 IP 的云服务器(推荐 Linux 系统,如 CentOS、Ubuntu)。
- 已安装宝塔面板(版本 7.0+)。
- 已安装 Docker 和 Docker Compose。
- 域名一个(可选,用于 HTTPS 访问,提升安全性)。
宝塔面板安装 Docker 和 Docker Compose
如果你的服务器上尚未安装 Docker 和 Docker Compose,可以通过宝塔面板的“软件商店”搜索并一键安装。
- 搜索“Docker管理器”并安装。
- Docker 安装完成后,在 Docker 管理器中,点击“Compose”选项卡,安装 Docker Compose。
域名解析 (可选)
如果需要使用域名进行 HTTPS 访问,需要将域名解析到服务器的公网 IP 地址。在域名解析服务商(如阿里云、腾讯云)的控制台中添加 A 记录即可。
使用 Docker Compose 部署 RustDesk 服务器
创建 Docker Compose 配置文件
docker-compose.yml
在服务器的某个目录下(例如
/opt/rustdesk)创建docker-compose.yml文件,并添加以下内容:version: '3' services: hbbs: image: rustdesk/rustdesk-server:latest # hbbs 是 rendezvous 服务器 container_name: rustdesk-hbbs volumes: - ./data:/data ports: - 21115:21115 - 21116:21116 - 21116:21116/udp - 21117:21117 - 21117:21117/udp restart: unless-stopped networks: - rustdesk-net hbbr: image: rustdesk/rustdesk-server:latest # hbbr 是中继服务器 container_name: rustdesk-hbbr volumes: - ./data:/data ports: - 21118:21118 restart: unless-stopped networks: - rustdesk-net networks: rustdesk-net: driver: bridge配置文件说明:
image:指定使用的 Docker 镜像,这里使用rustdesk/rustdesk-server:latest,表示使用最新版本的 RustDesk 服务器镜像。container_name:指定容器的名称,方便管理。volumes:将宿主机目录./data挂载到容器的/data目录,用于持久化存储数据。ports:映射端口,将宿主机的端口映射到容器的端口。 RustDesk 服务器需要开放 21115-21118 端口,其中 21116 和 21117 需要同时支持 TCP 和 UDP 协议。注意:国内服务器可能需要先在服务器安全组开放这些端口,才能正常访问。restart: unless-stopped:设置容器的重启策略,除非手动停止,否则容器会自动重启。networks:定义 Docker 网络,让 hbbs 和 hbbr 容器在同一个网络中。
启动 RustDesk 服务器
在
docker-compose.yml文件所在的目录下,执行以下命令启动 RustDesk 服务器:
docker-compose up -d # -d 表示后台运行如果你的服务器内存较小(如 1GB),可以考虑先停止一些不必要的服务,释放内存资源。
查看 RustDesk 服务器状态
执行以下命令查看 RustDesk 服务器的运行状态:
docker-compose ps如果 hbbs 和 hbbr 容器的状态都显示为
Up,则表示 RustDesk 服务器已成功启动。
配置 RustDesk 客户端
获取服务器 ID
RustDesk 客户端需要知道服务器的 ID 才能连接到自建服务器。服务器 ID 位于
/opt/rustdesk/data/id文件中。可以使用以下命令查看:cat /opt/rustdesk/data/id配置客户端连接
打开 RustDesk 客户端,点击右下角的“设置”按钮,选择“网络”选项卡,在“ID 服务器”、“中继服务器”和“API 服务器”中填写服务器的公网 IP 地址和对应的端口号(21115、21116、21117)。例如:

- ID 服务器:
your_server_ip:21115 - 中继服务器:
your_server_ip:21116 - API 服务器:
your_server_ip:21117
如果使用了域名,则填写域名和对应的端口号。
点击“应用”按钮,然后重启 RustDesk 客户端。
- ID 服务器:
测试连接
在两台设备上都安装 RustDesk 客户端,并配置连接到自建服务器。然后,尝试从一台设备远程控制另一台设备,验证连接是否成功。
常见问题及解决方法
- 防火墙问题:确保服务器的防火墙已开放 21115-21118 端口,允许 TCP 和 UDP 流量通过。
- 端口冲突:如果 21115-21118 端口已被其他程序占用,需要修改 RustDesk 服务器的端口配置,并更新客户端的配置。
- 连接失败:检查服务器的公网 IP 地址是否正确,以及客户端的配置是否与服务器配置一致。
- 性能问题:如果远程控制时出现卡顿现象,可以尝试优化服务器的网络带宽,或者调整 RustDesk 客户端的图像质量设置。
通过宝塔面板和 Docker 部署 RustDesk 自建远程控制服务器,不仅可以摆脱对第三方服务的依赖,还能更好地保护数据安全。希望这篇学习记录能帮助你成功搭建自己的远程控制服务。
RustDesk 服务器的安全性加固建议
除了使用 RustDesk 自带的端到端加密,还可以采取一些额外的措施来提高服务器的安全性:
- 使用强密码:为 RustDesk 客户端设置强密码,防止未经授权的访问。
- 限制 IP 访问:可以通过防火墙或 Nginx 反向代理等方式,限制只有特定 IP 地址才能访问 RustDesk 服务器。
- 定期更新:及时更新 RustDesk 服务器和客户端,修复已知的安全漏洞。
- 监控服务器日志:定期查看服务器日志,及时发现和处理异常情况。
- 配置 SSL 证书:如果使用了域名,建议配置 SSL 证书,启用 HTTPS 访问,防止数据被窃听。
通过这些安全加固措施,可以进一步提高 RustDesk 服务器的安全性,保障远程控制的安全可靠。
冠军资讯
加班到秃头