🌊 第06章 · RustDesk 部署与客户端

服务端/客户端连线

RustDesk 部署与客户端

这一章把上一章的原理落到命令上:怎么在服务器装 hbbs/hbbr,怎么用 systemd 常驻,怎么配置客户端连上。本机就是用这套部署的(工作目录 /usr/local/rustdesk-server,systemd 托管)。

服务端部署步骤(以 Linux x86_64 为例)

1) 下载并解压 RustDesk 服务器组件

RustDesk 官方仓库提供 rustdesk-server 二进制。常见的 Linux 版本是 rustdesk-server-linux-amd64。

# 下载(版本号按实际替换)
cd /tmp
wget https://github.com/rustdesk/rustdesk-server/releases/download/<VERSION>/rustdesk-server-linux-amd64.zip
unzip rustdesk-server-linux-amd64.zip -d /usr/local/rustdesk-server
chmod +x /usr/local/rustdesk-server/hbbs /usr/local/rustdesk-server/hbbr

提示 | 也可从官方编译脚本装。重点是拿到 hbbs、hbbr 两个可执行文件。

2) 首次运行生成密钥(客户端要用的 Key)

cd /usr/local/rustdesk-server
./hbbs -r <你的公网域名或IP>        # -r 用于指定中继域名;首次运行会生成 rustdesk.key / .pub
# 生成了:
#   rustdesk.key   私钥(留在服务器)
#   rustdesk.key   .pub 公钥(拷给客户端用)

注意 | hbbs 会输出一个 KEY(即公钥),把它记下来,客户端配置时要用。私钥 .key 权限收紧 chmod 600,别外泄。

3) 用 systemd 托管(本机已这样做)

/etc/systemd/system/rustdesk-hbbs.service:

[Unit]
Description=RustDesk ID/Rendezvous Server (hbbs)
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/rustdesk-server
ExecStart=/usr/local/rustdesk-server/hbbs
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

/etc/systemd/system/rustdesk-hbbr.service:

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

[Service]
Type=simple
WorkingDirectory=/usr/local/rustdesk-server
ExecStart=/usr/local/rustdesk-server/hbbr
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

4) 启动与开机自启

sudo systemctl enable --now rustdesk-hbbs rustdesk-hbbr
sudo systemctl status rustdesk-hbbs rustdesk-hbbr

复习 | 关于 systemd unit(WorkingDirectory/Restart 等)详见《服务、定时任务与脚本 · 自定义 Unit》。

5) 放行端口(云安全组 + 本机防火墙)

必须放: - 21115/tcp、21116/tcp、21116/udp(hbbs) - 21117/tcp(hbbr) - 可选 21118/21119(客户端 ID/中继,视版本)

sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp

验证 | ss -tlnp | grep 2111 看监听;云安全组确认放行 21115-21117(如本机云防火墙放行 21115-21117)。注意客户端要想连入,服务器端 21116 UDP 必须通。

客户端配置(被控端/控制端都要)

  1. 打开 RustDesk 客户端 → 设置 → ID/中继服务器。
  2. 填: - ID 服务器: 你的公网IP(或域名) - 中继服务器: 你的公网IP:21117 - Key(公钥): 服务端 hbbs 生成的 .pub 内容
  3. 保存。

关键 | Key 必须是服务端生成的公钥。填错 Key 会表现为"能识别 ID 但连不上"。

示例(客户端设置):

ID 服务器: 2.25.183.241
中继服务器: 2.25.183.241:21117
Key:       填入 hbbs 输出的 KEY 

客户端如何用

  • 两台设备都登录同一服务器(RustDesk 客户端设置里填好上面的 ID / 中继 / Key)。
  • 被控端要"允许远程访问"/设置永久密码,控制端在地址栏输入被控端 ID。
  • 状态:在客户端界面能看到是否连接上中继服务器(绿色=已连)。

排错速查

现象 可能原因 处理
连不上/一直转 端口没放行,尤其 21116 UDP 检查云安全组 + ufw;nc -zuv 测 21116 UDP
能识别 ID 但连不上 Key 填错/客户端没填 Key 核对 .pub 公钥;服务端 ss 看监听
速度慢 走了中继而不是直连 检查 NAT 穿透(21116 UDP 必须通);优选直连
hbbs 起不来 端口被占/缺依赖 journalctl -u rustdesk-hbbs -n 30 看报错;systemctl status

相关命令

  • systemctl status rustdesk-hbbs rustdesk-hbbr
  • ss -tlnp | grep 2111(确认监听)
  • ls -l /usr/local/rustdesk-server/(看 key/pub 文件)
  • journalctl -u rustdesk-hbbr -n 30