RustDesk自建服务器完整部署指南:从零开始到成功连接。成功解决rustdesk报错:未就绪,请检查网络连接

最近需要用到远程工具解决用户问题,todesk总是提示付费,干脆自己使用开源的。当然凡事都有代价。 话费了一个工作日的时间终于搞定了。

本文将详细介绍如何从零开始部署RustDesk自建服务器,实现完全自主可控的远程桌面解决方案。

踩坑

参考了https://blog.csdn.net/m0_74823611/article/details/146158064 使用二进制文件 rustdesk-server-linux-amd64.zip安装,但是没有效果。估计还是端口映射的问题。

一方面也是自己偷懒原因,不想安装docker节省服务器空间。结果最后浪费了一早上的时间。

https://blog.csdn.net/weixin_53510183/article/details/143257158 这篇文章有说明二进制安装的缺陷。

1. 准备工作

1.1 服务器要求

  • 云服务器(腾讯云、阿里云等)
  • CentOS 7/8 或 Ubuntu 18.04+
  • 至少1GB内存,1核CPU
  • 开放的公网IP

1.2 必要端口

  • 21115 (hbbs - Web控制台,可选)
  • 21116 (hbbs - ID注册服务)
  • 21117 (hbbr - 中继服务)
  • 21118 (hbbs - Web API,可选)
  • 21119 (hbbr - Web API,可选)

2. Docker环境安装

2.1 CentOS Docker安装脚本

创建安装脚本文件:

bash 复制代码
nano install-docker.sh

复制以下内容:

bash 复制代码
#!/bin/bash

# 更新系统
sudo yum update -y

# 安装必要的工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加 Docker 仓库
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 替换镜像源到阿里云
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

# 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 启动 Docker
sudo systemctl start docker
sudo systemctl enable docker

# 测试 Docker 是否安装成功
sudo docker run --rm hello-world

echo "Docker 已安装并启动成功!"

2.2 执行安装

bash 复制代码
chmod +x install-docker.sh
./install-docker.sh

2.3 配置Docker镜像加速(重要)

创建Docker配置文件:

bash 复制代码
sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.json

添加以下内容:

json 复制代码
{
  "registry-mirrors": [
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://ccr.ccs.tencentyun.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

重启Docker服务:

bash 复制代码
sudo systemctl restart docker

3. 防火墙配置

3.1 使用ufw(推荐)

bash 复制代码
# 安装ufw
sudo yum install -y epel-release
sudo yum install -y ufw

# 启用ufw
sudo ufw enable

# 开放必要端口
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
sudo ufw allow ssh

# 查看状态
sudo ufw status numbered

3.2 云服务器安全组

在云服务商控制台配置安全组规则:

  • 入方向:开放21115-21119端口(TCP)
  • 入方向:开放21116端口(UDP)

4. 部署RustDesk服务

4.1 创建数据目录

bash 复制代码
sudo mkdir -p /opt/rustdesk
sudo chown $USER:$USER /opt/rustdesk

4.2 启动hbbs服务(ID注册服务)

最好使用下面带端口的安装方法,官方文档https://rustdesk.com/docs/zh-cn/self-host/rustdesk-server-oss/docker/里使用--net=host 似乎并没有效果。

bash 复制代码
docker run --name hbbs \
  -p 21115:21115 \
  -p 21116:21116 \
  -p 21116:21116/udp \
  -p 21118:21118 \
  -v /opt/rustdesk:/root \
  -td --restart unless-stopped \
  rustdesk/rustdesk-server hbbs -r 你的服务器IP:21117

4.3 启动hbbr服务(中继服务)

bash 复制代码
docker run --name hbbr \
  -p 21117:21117 \
  -p 21119:21119 \
  -v /opt/rustdesk:/root \
  -td --restart unless-stopped \
  rustdesk/rustdesk-server hbbr

4.4 验证服务状态

bash 复制代码
# 检查容器运行状态
docker ps

# 检查端口监听
sudo ss -tuln | grep 2111

# 查看服务日志
docker logs hbbs
docker logs hbbr

5. 获取密钥

5.1 获取公钥

bash 复制代码
# 查看生成的公钥
cat /opt/rustdesk/id_ed25519.pub

**重要:**这个公钥将在客户端配置时使用,请妥善保存。

6. 客户端配置

6.1 下载RustDesk客户端

6.2 配置连接信息

打开RustDesk客户端,点击"设置" -> "网络" -> "ID/中继服务器":

  • ID服务器 : 你的服务器IP(⚠️ 不要加端口号)
  • 中继服务器 : 你的服务器IP(⚠️ 不要加端口号)
  • Key : 粘贴步骤5.1获取的完整公钥内容

6.3 保存并重启

  • 点击"确认"保存配置
  • 完全退出RustDesk客户端
  • 重新启动客户端

7. 常见问题及解决方案

7.1 rustdesk客户端显示"未就绪,请检查网络连接"

原因: 端口映射或防火墙问题
解决:

bash 复制代码
# 检查Docker端口映射
docker port hbbs
docker port hbbr

# 检查防火墙状态
sudo ufw status

# 验证端口监听
sudo ss -tuln | grep 21116
sudo ss -tuln | grep 21117

我主要就是卡在这一步,端口没有映射成功。这里不能开魔法的Tun模式,最好关掉。这样能检测是否真正的连接成功。

7.2 Key不匹配错误(高频问题)

原因: 客户端缓存了旧的配置或使用了错误的密钥
解决:

cmd 复制代码
# Windows下清除缓存(管理员CMD)
rmdir /s /q "%APPDATA%\RustDesk"
rmdir /s /q "%LOCALAPPDATA%\RustDesk"

然后重新获取正确的密钥:

bash 复制代码
# 确保获取Docker容器中的最新密钥
cat /opt/rustdesk/id_ed25519.pub

7.3 网络连通性测试

powershell 复制代码
# Windows PowerShell测试
Test-NetConnection 你的服务器IP -Port 21116
Test-NetConnection 你的服务器IP -Port 21117

正常结果应显示:TcpTestSucceeded : True

7.4 代理软件干扰

如果使用了Clash、Mihomo、V2Ray等代理软件,需要添加直连规则:

yaml 复制代码
# 示例配置(Clash/Mihomo)
rules:
  - DOMAIN,api.rustdesk.com,DIRECT
  - IP-CIDR,你的服务器IP/32,DIRECT

8. 总结

通过以上步骤,终于成功部署了一个完全自主可控的RustDesk服务器。相比于使用官方服务器,自建服务器具有以下优势:

  • 隐私保护:所有连接数据不经过第三方服务器
  • 稳定可靠:不受官方服务器状态影响
  • 自主可控:可根据需要调整服务配置
  • 成本可控:一次部署,长期使用

现在可以在任何安装了RustDesk客户端的设备上,通过你的自建服务器进行远程桌面连接了!


关键提醒:

  • 服务器地址不要加端口号
  • 一定要配置Docker镜像加速
  • Key不匹配时优先清除客户端缓存
  • 网络测试确认端口连通性

参考文章

https://blog.csdn.net/weixin_53510183/article/details/143257158

https://halo.blog360.sbs/archives/rustdesk-kai-yuan-yuan-cheng-zhuo-mian-ruan-jiahe-shi-yong-jiao-cheng

https://rustdesk.com/docs/zh-cn/self-host/

https://blog.csdn.net/m0_74823611/article/details/146158064

相关推荐
Agent产品评测局2 小时前
企业流程异常处理自动化落地,预警处置全流程实现方案:2026企业“数字免疫系统”构建指南
运维·人工智能·ai·chatgpt·自动化
charlie1145141912 小时前
嵌入式Linux驱动开发指南02——内核空间基础与硬件访问
linux·运维·c语言·驱动开发·嵌入式硬件
不会写DN2 小时前
TCP 长连接服务:登录注册认证体系实战指南
服务器·网络·网络协议·tcp/ip·计算机网络·面试
萑澈2 小时前
实践教程:我如何用 n8n 自动化“软著申请”中最头疼的文档撰写工作
运维·elasticsearch·自动化
zzzsde2 小时前
【Linux】进程信号(1)理解信号及信号产生的方式
linux·运维·服务器·算法
lKWO OMET3 小时前
查看 nginx 是否已经启动
运维·数据库·nginx
执笔画流年呀3 小时前
多线程及其特性
java·服务器·开发语言
aq55356003 小时前
三大Linux系统终极对决
linux·运维·服务器
anzhxu4 小时前
防火墙安全策略(基本配置)
服务器·php·apache
sssjjww4 小时前
服务器不同路径下找conda
linux·运维·服务器