当前位置: 首页 > news >正文

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安装脚本

创建安装脚本文件:

nano install-docker.sh

复制以下内容:

#!/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-worldecho "Docker 已安装并启动成功!"

2.2 执行安装

chmod +x install-docker.sh
./install-docker.sh

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

创建Docker配置文件:

sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.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服务:

sudo systemctl restart docker

3. 防火墙配置

3.1 使用ufw(推荐)

# 安装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 创建数据目录

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 似乎并没有效果。

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服务(中继服务)

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

docker rustdesk

4.4 验证服务状态

# 检查容器运行状态
docker ps# 检查端口监听
sudo ss -tuln | grep 2111# 查看服务日志
docker logs hbbs
docker logs hbbr

5. 获取密钥

5.1 获取公钥

# 查看生成的公钥
cat /opt/rustdesk/id_ed25519.pub

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

6. 客户端配置

6.1 下载RustDesk客户端

  • Windows: https://github.com/rustdesk/rustdesk/releases
  • macOS: 同上
  • Android/iOS: 应用商店搜索"RustDesk"

6.2 配置连接信息

打开RustDesk客户端,点击"设置" -> “网络” -> “ID/中继服务器”:
在这里插入图片描述

  • ID服务器: 你的服务器IP(⚠️ 不要加端口号)
  • 中继服务器: 你的服务器IP(⚠️ 不要加端口号)
  • Key: 粘贴步骤5.1获取的完整公钥内容
    在这里插入图片描述

6.3 保存并重启

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

7. 常见问题及解决方案

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

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

# 检查Docker端口映射
docker port hbbs
docker port hbbr# 检查防火墙状态
sudo ufw status# 验证端口监听
sudo ss -tuln | grep 21116
sudo ss -tuln | grep 21117

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

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

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

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

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

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

7.3 网络连通性测试

# Windows PowerShell测试
Test-NetConnection 你的服务器IP -Port 21116
Test-NetConnection 你的服务器IP -Port 21117

正常结果应显示:TcpTestSucceeded : True

7.4 代理软件干扰

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

# 示例配置(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

http://www.lryc.cn/news/594738.html

相关文章:

  • Vue 脚手架——render函数
  • 网络与信息安全有哪些岗位:(1)网络安全工程师
  • 【系统全面】Linux进程——基础知识介绍
  • 在本地WSL中的CentOS 7子系统中部署Ewomail邮件服务器
  • AC身份认证实验之AAA服务器
  • django filter按两个属性 去重
  • 第15次:商品搜索
  • 信息整合注意力IIA,通过双方向注意力机制重构空间位置信息,动态增强目标关键特征并抑制噪声
  • 来伊份养馋记社区零售 4.0 上海首店落沪:重构 “家门口” 的生活服务生态
  • 卷积神经网络中的注意力机制:CBAM详解与实践
  • Go-通俗易懂垃圾回收及运行过程
  • WPF——自定义ListBox
  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(二)
  • 学习秒杀系统-异步下单(包含RabbitMQ基础知识)
  • ASP.NET Core Web API 中集成 DeveloperSharp.RabbitMQ
  • 关于校准 ARM 开发板时间的步骤和常见问题:我应该是RTC电池没电了才导致我设置了重启开发板又变回去2025年的时间
  • Android NDK ffmpeg 音视频开发实战
  • 什么是“差分“?
  • 包装类简单了解泛型
  • 图片转 PDF三个免费方法总结
  • 支持不限制大小,大文件分段批量上传功能(不受nginx /apache 上传大小限制)
  • 网络设备功能对照表
  • 【Spark征服之路-3.6-Spark-SQL核心编程(五)】
  • Linux 文件操作详解:结构、系统调用、权限与实践
  • 第二阶段-第二章—8天Python从入门到精通【itheima】-134节(SQL——DQL——分组聚合)
  • leetcode-sql-627变更性别
  • 深入解析IP协议:组成、地址管理与路由选择
  • Tomato靶机通关教程
  • 安装docker可视化工具 Portainer中文版(ubuntu上演示,所有docker通用) 支持控制各种容器,容器操作简单化 降低容器门槛
  • 板凳-------Mysql cookbook学习 (十二--------4)