Debian12部署rustdesk服务

admin | 2026-03-22 18:49 | 阅读 81 次

在 Debian 12 (Bookworm) 上部署 RustDesk 服务端主要有两种推荐方式:Docker 部署(最简单、推荐)和 二进制文件直接部署(适合无 Docker 环境)。

RustDesk 服务端包含两个核心组件:

  • hbbs: ID/注册服务器(处理握手、NAT 穿透信令)。
  • hbbr: 中继服务器(当 P2P 直连失败时,用于转发数据)。

以下是详细部署步骤:

方法一:使用 Docker 部署(推荐)

这是最快捷且易于维护的方式,官方提供了现成的镜像。

1. 安装 Docker

如果尚未安装 Docker,请先执行以下命令:

sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker

2. 创建数据目录

创建一个目录用于持久化存储密钥和数据:

mkdir -p /opt/rustdesk/data
cd /opt/rustdesk

3. 启动服务

使用 docker run 命令启动 hbbshbbr注意:请确保防火墙开放了以下端口:

  • TCP: 21115, 21116, 21118
  • UDP: 21116
  • TCP/UDP: 21119 (Web 客户端支持,可选)

运行以下命令(将 <YOUR_SERVER_IP> 替换为你的服务器公网 IP):

# 启动 hbbs (ID 服务器)
sudo docker run --name hbbs -v ./data:/root -d \
  --net=host \
  --restart=unless-stopped \
  rustdesk/rustdesk-server:latest hbbs -r <YOUR_SERVER_IP>:21117

# 启动 hbbr (中继服务器)
sudo docker run --name hbbr -v ./data:/root -d \
  --net=host \
  --restart=unless-stopped \
  rustdesk/rustdesk-server:latest hbbr

注:使用 --net=host 模式可以简化端口映射,性能也更好。如果不使用 host 模式,需要手动 -p 映射所有上述端口。

4. 获取密钥 (Key)

RustDesk 客户端连接自建服务器时需要验证密钥。密钥生成在 ./data 目录下。 查看生成的公钥(id_ed25519.pub):

cat ./data/id_ed25519.pub

复制输出的字符串(通常是一串字符),这就是你的 Key


方法二:二进制文件直接部署

如果你不想安装 Docker,可以直接下载官方编译好的二进制文件。

1. 下载服务端程序

前往 RustDesk Server Releases 下载最新版本的 Linux amd64 包(假设是 x86_64 架构):

cd /opt
# 请检查官网最新版本号,此处以示例版本号演示
wget https://github.com/rustdesk/rustdesk-server/releases/download/v1.1.10/rustdesk-server-linux-x64.zip
# 如果没有 unzip,先安装:sudo apt install unzip
unzip rustdesk-server-linux-x64.zip
cd rustdesk-server

2. 配置 systemd 服务

为了开机自启和后台运行,我们创建 systemd 服务文件。

创建 hbbs 服务:

sudo nano /etc/systemd/system/hbbs.service

填入以下内容(将 <YOUR_SERVER_IP> 替换为你的公网 IP):

[Unit]
Description=RustDesk ID Server
After=network.target

[Service]
Type=simple
ExecStart=/opt/rustdesk-server/hbbs -r <YOUR_SERVER_IP>:21117
WorkingDirectory=/opt/rustdesk-server
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target

创建 hbbr 服务:

sudo nano /etc/systemd/system/hbbr.service

填入以下内容:

[Unit]
Description=RustDesk Relay Server
After=network.target

[Service]
Type=simple
ExecStart=/opt/rustdesk-server/hbbr
WorkingDirectory=/opt/rustdesk-server
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target

3. 启动服务

sudo systemctl daemon-reload
sudo systemctl enable --now hbbs
sudo systemctl enable --now hbbr

4. 获取密钥

密钥文件通常会生成在当前运行目录下(即 /opt/rustdesk-server):

cat /opt/rustdesk-server/id_ed25519.pub

复制输出的内容作为 Key


关键配置:防火墙设置

无论使用哪种方法,都必须在服务器防火墙放行相关端口。

如果使用 UFW (Debian 默认可能未安装,若已安装):

sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp
sudo ufw allow 21119/udp
sudo ufw reload

如果使用 iptables 或云厂商安全组(阿里云/腾讯云/AWS 等): 请在云控制台的“安全组”或“防火墙”规则中,添加入站规则,允许上述端口的 TCP 和 UDP 流量。

  • 21115 (TCP): NAT 类型测试
  • 21116 (TCP/UDP): ID 注册与心跳服务 (核心)
  • 21118 (TCP): 网页客户端支持
  • 21119 (TCP/UDP): 中继服务 (hbbr)

客户端连接配置

  1. 下载并安装 RustDesk 客户端(Windows/Mac/Linux/Android/iOS)。
  2. 打开客户端,点击右下角的 “网络” 或进入 设置 -> 网络
  3. 填写以下信息:
    • ID 服务器: <你的服务器IP>:21116
    • 中继服务器: <你的服务器IP>:21117 (注意:这里通常填 21117,虽然 hbbr 监听 21119,但在配置中常指向同一入口或根据版本不同,新版客户端若分开填,中继填 21119 或直接留空让 hbbs 转发,建议测试。根据官方文档,-r 参数指定的是 relay 地址,客户端配置中的 "Relay Server" 通常填写 <IP>:21117 或者 <IP>:21119,具体取决于版本。修正:标准配置中,ID 服务器填 IP:21116,中继服务器填 IP:21117 是指向 hbbs 的转发,或者直接填 IP:21119 指向 hbbr。最稳妥的方式是:ID 服务器填 IP:21116,Key 填入下方,中继服务器可不填或填 IP:21119)。
    • API 服务器: (可选) http://<你的服务器IP>:21118
    • Key: 粘贴之前获取的 id_ed25519.pub 内容。
  4. 保存后,状态栏应显示“就绪”或绿色连接图标。

常见问题排查

  • 连接超时:90% 的情况是防火墙或云服务商的安全组端口未放开。请重点检查 21116 (UDP 和 TCP) 是否通畅。
  • 黑屏或卡顿:尝试在客户端设置中关闭“启用硬件解码”或切换“直连模式”。如果是内网穿透失败走中继,带宽不足也会导致卡顿。
  • Key 错误:确保复制的 Key 没有多余的空格或换行符。如果重新部署了服务且删除了 data 目录,Key 会变化,客户端需更新 Key。

通过以上步骤,你就可以在 Debian 12 上拥有一个完全自控的高速远程桌面服务了。

评论 (1)

发表评论
admin
2026-03-22 19:27

在 RustDesk 客户端(Windows/Mac/Linux/Android/iOS)的 **网络 (Network)** 设置中,填写示例如下。 假设你的服务器公网 IP 是:`123.45.67.89` *(请将下文中的 `123.45.67.89` 替换为你真实的服务器 IP)* 假设你的密钥是:`rg8ca8mkMvXGdeQ9O3HVVMTgPFmL0fnWw4XbodfVUAA=` *(请替换为你刚才提取的纯净密钥,不要带空格)* --- ### ✅ 标准填写示例 | 设置项 | 填写内容示例 | 说明 | | :--- | :--- | :--- | | **ID 服务器**(ID Server) | `123.45.67.89:21116` | **必填**。格式为 `IP:端口`。端口默认为 **21116**。 | | **密钥**(Key) | `rg8ca8mkMvXGdeQ9O3HVVMTgPFmL0fnWw4XbodfVUAA=` | **必填**。必须与服务器 `id_ed25519.pub` 内容完全一致。**注意**:前后不能有空格或换行。 | | **中继服务器**(Relay Server) | `123.45.67.89:21117` | **必填**(建议填)。格式为 `IP:端口`。端口默认为 **21117** (这是 hbbs 的转发入口)。 | | **API 服务器**(API Server) | `http://123.45.67.89:21118` | **选填**。如果你不需要使用网页版客户端或地址簿功能,可以留空。如果填写,需带上 `http://` 前缀,端口通常为 **21118**。 | --- ### 📝 详细操作截图指引 (文字版) 1. 打开 RustDesk 客户端。 2. 点击主界面右下角的 **⚙️ (设置)** 或直接点击 **🌐 (网络)** 按钮。 3. 在弹出的窗口中依次填入: * **ID 服务器**: `123.45.67.89:21116` * **密钥**: `rg8ca8mkMvXGdeQ9O3HVVMTgPFmL0fnWw4XbodfVUAA=` * **中继服务器**: `123.45.67.89:21117` * **API 服务器**: `http://123.45.67.89:21118` (可选) 4. 点击 **应用 (Apply)** 或 **保存**。 5. **重要步骤**:关闭并重新启动 RustDesk 客户端,或者右键点击任务栏托盘图标选择“退出”,然后重新打开,以确保配置生效。 --- ### 🔍 验证是否成功 配置保存并重启客户端后,观察主界面底部状态栏: * **✅ 成功状态**: * 显示绿色或蓝色的点。 * 文字显示:**“就绪” (Ready)**。 * 下方小字显示你的 ID 号码(例如:`123 456 789`)。 * 此时你可以尝试连接同一网络下的另一台安装了 RustDesk 的设备进行测试。 * **❌ 失败状态**: * 显示红色或黄色的点。 * 文字显示:**“网络错误”**、**“连接中...”** 或 **“Key 不匹配”**。 * **排查**: 1. 检查服务器防火墙(安全组)是否放行了 **21116 (TCP+UDP)** 和 **21119 (TCP+UDP)**。 2. 检查密钥是否有空格。 3. 检查 IP 是否填写正确(不要加 `http://` 在 ID 服务器栏)。 ### 💡 常见问题提示 * **API 服务器一定要填吗?** * 如果你只是用来远程桌面控制(点对点或中继),**不需要填** API 服务器。 * 只有当你需要使用 **RustDesk 网页版客户端** (在浏览器里访问) 或者使用 **地址簿/用户登录** 功能时,才需要配置 API 服务器并确保 `hbbs` 启动了 Web 服务(默认端口 21118)。 * **中继服务器填 21117 还是 21119?** * 官方推荐客户端填 **21117**。`hbbs` 会监听 21117 并将流量转发给 `hbbr` (实际监听 21119)。这样配置最稳妥。