RustDesk 远程连接失败 — 禁用 UDP 排查与修复
2026/6/19大约 2 分钟
RustDesk 远程连接失败 — 禁用 UDP 排查与修复
Mac mini 上运行 RustDesk 作为远程桌面服务端,自建 ID/中继服务器。外出时通过客户端远程连接,发现连接失败或超时,但 RustDesk 进程在本地正常运行。由于 RustDesk 是唯一的远程访问手段(无 SSH、无其他远程桌面),此问题等同于完全失去远程访问能力,属于高优先级故障。
排查过程
1. 确认 RustDesk 进程状态
pgrep -x RustDesk
# 输出进程 PID,说明 RustDesk 在运行进程正常,排除了崩溃或未启动的可能。
2. 定位配置文件
RustDesk 在 macOS 上的配置目录:
~/Library/Preferences/com.carriez.RustDesk/关键文件:
| 文件 | 用途 |
|---|---|
RustDesk.toml | 身份信息(ID、密钥对) |
RustDesk2.toml | 网络配置(服务器、选项) |
3. 检查网络配置
cat ~/Library/Preferences/com.carriez.RustDesk/RustDesk2.toml发现 [options] 段中:
disable-udp = 'Y'这就是根因。 disable-udp = 'Y' 强制 RustDesk 只使用 TCP 协议进行 P2P 和中继通信。在某些 NAT 环境下,纯 TCP 连接无法穿透或中继失败,导致远程连接超时。
修复步骤
Step 1: 备份配置
cp ~/Library/Preferences/com.carriez.RustDesk/RustDesk2.toml \
~/Library/Preferences/com.carriez.RustDesk/RustDesk2.toml.bak.$(date +%Y%m%d_%H%M%S)Step 2: 修改 disable-udp
sed -i '' "s/disable-udp = 'Y'/disable-udp = 'N'/" \
~/Library/Preferences/com.carriez.RustDesk/RustDesk2.toml验证修改:
grep "disable-udp" ~/Library/Preferences/com.carriez.RustDesk/RustDesk2.toml
# 输出: disable-udp = 'N'Step 3: 重启 RustDesk
RustDesk 不支持配置热加载,必须重启。
osascript -e 'quit app "RustDesk"'
sleep 2
open -a "RustDesk"验证运行状态:
pgrep -x RustDesk && echo "RustDesk 已重启成功"Step 4: 远程验证
从客户端重新发起连接,确认可以正常建立会话。
关键配置参考
RustDesk2.toml 完整 [options] 段:
[options]
rendezvous_server = 'YOUR_SERVER_IP:21116'
relay-server = 'YOUR_SERVER_IP'
custom-rendezvous-server = 'YOUR_SERVER_IP'
direct-server = 'Y'
verification-method = 'use-permanent-password'
disable-udp = 'N'
allow-remote-config-modification = 'Y'
local-ip-addr = '192.168.x.x'| 字段 | 含义 |
|---|---|
rendezvous_server | 自建 ID 服务器地址 |
relay-server | 中继服务器地址 |
direct-server | 允许局域网直连 |
disable-udp | 是否禁用 UDP(N = 启用) |
verification-method | 认证方式:永久密码 |
经验总结
- RustDesk 配置修改必须重启才能生效,不支持热加载
disable-udp = 'Y'是隐蔽杀手 — GUI 上的开关不容易注意到,但在中继/NAT 场景下会导致连接完全失败- 远程修改配置是高风险操作 — 重启会导致短暂断连,操作前需确认无重要远程会话、有备选访问方案
- 配置文件备份是必须的 — TOML 格式对引号和空格敏感,误改可能导致 RustDesk 无法启动
- 对于关键远程访问工具,建议定期检查配置项,避免被意外修改
