前言为什么需要自建 RustDesk国内访问 TeamViewer、向日葵等商业软件速度不稳定免费版限制多数据安全顾虑希望所有远程流量都经过自己的服务器RustDesk 开源免费支持自建中继服务器完全掌控数据本文记录了我在Ubuntu Server 24.04 LTS上从零开始部署 RustDesk 服务端的全过程包含所有踩坑和解决方案国内网络环境友好小白也能跟着一步步操作成功。 准备工作服务器要求项目最低配置推荐配置CPU1核2核内存1GB2GB系统Ubuntu 24.04 LTSUbuntu 24.04 LTS公网IP必须有必须有需要开放的端口RustDesk 服务端需要开放以下端口服务器防火墙 云服务商安全组都要放行端口协议用途21115TCPNAT 类型测试21116TCP UDPNAT 打洞21117TCP中继服务21118TCPWeb 客户端支持21119TCPWeb 客户端支持⚠️重要如果你使用的是阿里云、腾讯云、华为云等必须在云控制台的“安全组”或“防火墙”中手动添加入方向规则放行上述端口否则客户端无法连接。 第一步安装 Docker 和 Docker Compose国内环境直接安装docker-compose-plugin可能会报Unable to locate package所以推荐使用官方一键脚本 阿里云镜像加速。1.1 安装 Docker一键脚本bash# 下载官方安装脚本 curl -fsSL https://get.docker.com -o get-docker.sh # 执行脚本指定阿里云镜像加速 sudo sh get-docker.sh --mirror Aliyun如果curl报错写入失败可以切换到/tmp目录执行bashcd /tmp curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun1.2 验证安装bashdocker --version docker compose version如果两条命令都正常显示版本号说明 Docker 安装成功。 第二步配置 Docker 国内镜像加速为了让后续拉取 RustDesk 镜像更快配置 Docker 镜像加速器。bash# 创建 Docker 配置目录 sudo mkdir -p /etc/docker # 编辑配置文件 sudo nano /etc/docker/daemon.json粘贴以下内容json{ registry-mirrors: [ https://docker.1ms.run, https://dockerpull.com ] }保存退出CtrlX→Y→Enter然后重启 Dockerbashsudo systemctl daemon-reload sudo systemctl restart docker 第三步部署 RustDesk 服务端3.1 创建服务目录和配置文件bash# 创建目录 mkdir -p /opt/rustdesk cd /opt/rustdesk # 创建 docker-compose.yml注意使用国内镜像源 dockerpull.com sudo cat docker-compose.yml EOF services: hbbs: image: dockerpull.com/rustdesk/rustdesk-server:latest container_name: hbbs command: hbbs network_mode: host volumes: - ./data:/root restart: unless-stopped hbbr: image: dockerpull.com/rustdesk/rustdesk-server:latest container_name: hbbr command: hbbr network_mode: host volumes: - ./data:/root restart: unless-stopped EOF说明使用network_mode: host让容器直接使用宿主机网络无需额外端口映射配置最简单。3.2 启动服务bashsudo docker compose up -d首次启动会自动拉取镜像如果卡住可以按CtrlC取消后手动拉取bash# 手动拉取镜像 sudo docker pull dockerpull.com/rustdesk/rustdesk-server:latest # 再次启动 sudo docker compose up -d3.3 检查运行状态bashsudo docker ps看到hbbs和hbbr状态都是Up说明启动成功。3.4 获取连接密钥Keybashsudo cat /opt/rustdesk/data/id_ed25519.pub会输出一串类似bWI7czjxxxxxxxxxxxxxxxa6NBPKjG2UvxjIKaxxxxx的字符串请复制保存下来客户端配置时需要用到。 第四步配置防火墙4.1 Ubuntu UFW 防火墙bashsudo ufw allow 21115:21119/tcp sudo ufw allow 21116/udp sudo ufw reload4.2 云服务商安全组重要登录云服务商控制台 → 找到安全组→ 添加入方向规则端口范围协议来源21115-21119TCP0.0.0.0/021116UDP0.0.0.0/0 第五步客户端配置5.1 下载客户端如果官网https://rustdesk.com/无法访问可以使用以下备用渠道GitHub ReleasesReleases · rustdesk/rustdesk · GitHubGitee 镜像https://gitee.com/mirrors/rustdesk直接下载链接v1.4.6Windowshttps://github.com/rustdesk/rustdesk/releases/download/1.4.6/rustdesk-1.4.6-x86_64.exemacOShttps://github.com/rustdesk/rustdesk/releases/download/1.4.6/rustdesk-1.4.6-x86_64.dmgLinuxhttps://github.com/rustdesk/rustdesk/releases/download/1.4.6/rustdesk-1.4.6-x86_64.debAndroidhttps://github.com/rustdesk/rustdesk/releases/download/1.4.6/rustdesk-1.4.6-universal-signed.apk5.2 配置连接打开 RustDesk 客户端 → 右上角设置⚙️→网络配置项填写内容ID服务器你的服务器公网 IP中继服务器你的服务器公网 IPKey第三步获取的密钥保存后客户端左下角显示“就绪”即表示连接成功。 踩坑记录与解决方案❌ 问题1Unable to locate package docker-compose-plugin原因Ubuntu 默认软件源不包含该包。解决使用官方一键安装脚本sudo sh get-docker.sh --mirror Aliyun它会自动安装 Docker 和 Compose 插件。❌ 问题2curl: (23) Failure writing output to destination原因当前目录没有写入权限。解决切换到/tmp目录执行或使用sudo权限。❌ 问题3GPG error: NO_PUBKEY 7EA0A9C3F273FCD8原因Docker GPG 密钥未正确导入。解决bash# 手动导入阿里云 Docker GPG 密钥 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加 Docker 源 echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y❌ 问题4mapping values are not allowed in this contextYAML格式错误原因docker-compose.yml缩进不正确。解决使用cat 方式创建文件避免手动缩进出错。关键规则services顶格hbbs/hbbr缩进 2 个空格image/container_name等缩进 4 个空格volumes下的- ./data:/root缩进 6 个空格❌ 问题5镜像拉取卡住不动原因国内访问 Docker Hub 速度慢或超时。解决在docker-compose.yml中使用国内镜像源dockerpull.com/rustdesk/rustdesk-server:latest或手动拉取后启动bashsudo docker pull dockerpull.com/rustdesk/rustdesk-server:latest sudo docker compose up -d 总结通过以上步骤你在国内环境下成功搭建了一套属于自己的 RustDesk 远程桌面服务。部署方式优点适用场景Docker Compose简单、易维护、一键启停推荐大多数用户使用常用管理命令bash# 查看服务状态 sudo docker ps # 停止服务 sudo docker compose down # 重启服务 sudo docker compose restart # 查看日志 sudo docker logs hbbs sudo docker logs hbbr # 更新服务拉取最新镜像后重启 sudo docker compose pull sudo docker compose up -d安全建议定期更新 RustDesk 服务端镜像客户端设置固定连接密码建议使用域名 HTTPS后续可配置反向代理仅对可信 IP 开放端口如有条件本文所有操作均在 Ubuntu Server 24.04 LTS 上验证通过国内网络环境实测可用。如果觉得有用欢迎点赞收藏 参考资料RustDesk 官方文档https://rustdesk.com/docs/en/Docker 官方安装指南Install Docker Engine on Ubuntu | Docker Docs本文部署所用镜像源dockerpull.com国内公益镜像站