Skip to main content

rustdesk

tip

为什么选择 RustDesk?

  • 免费
  • 无任何限制,链接数量,用户等
  • 功能完善 - 远程桌面、文件传输、端口转发、摄像头、可选的用户管理
  • 支持所有的平台 - Windows、macOS、移动端
  • 可以自己部署的中继服务器
portprotocolservice
21114TCPWeb Console(RustDesk Server Pro)
21115TCPNAT 类型检测(hbbs
21116TCP/UDPID 注册、心跳、打洞与连接协调(hbbs
21117TCP中继服务(hbbr
21118TCPWebSocket ID/信令服务(hbbs
21119TCPWebSocket 中继服务(hbbr

Awesome

Client

  • ID Server
  • Relay Server
  • API Server
  • Key
  • hbbs - 中继
  • hbbr - 反向
  • ~/Library/Preferences/com.carriez.RustDesk
    • RustDesk.toml
    • RustDesk2.toml
    • RustDesk_lan_peers.toml
    • RustDesk_local.toml
    • peers.toml
    • peers/*.toml
RustDesk2.toml
rendezvous_server = 'hbbs.example.com:21116'
nat_type = 1
serial = 0

[options]
local-ip-addr = '192.168.1.2'
custom-rendezvous-server = 'hbbs.example.com'
key = 'HBBS-KEY'
relay-server = 'hbbs.example.com'
audio-input = 'MacBook Pro Microphone'

Conf

  • ~/Library/Preferences/com.carriez.RustDesk/RustDesk.toml
  • ~/Library/Preferences/com.carriez.RustDesk/RustDesk2.toml
  • %AppData%\RustDesk\config\RustDesk.toml
  • ~/.config/rustdesk/RustDesk.toml
# macOS key
ioreg -rd1 -c IOPlatformExpertDevice | grep IOPlatformUUID
  • crypto_secretbox_open_easy

CLI

  • /Applications/RustDesk.app/Contents/MacOS/RustDesk
用法作用备注
--connect <ID>普通远程桌面控制
--file-transfer <ID>直接进入文件传输不打开普通桌面控制界面
--view-camera <ID>查看远端摄像头当前源码已加入
--port-forward <ID>打开 TCP Port Forward / Tunnel 模式CLI parser 本身只直接读取 ID,具体端口通常再由 UI/session 配置
--terminal <ID>打开远程 Terminal 会话当前新版源码已有
--rdp <ID>以 RDP 模式连接RustDesk 的 RDP 本质基于 TCP tunnel/port forwarding,并不是自己实现一套 RDP 协议
--play <arg>play 类型的内部/deep-link 会话入口官方文档没有把它作为稳定公开 CLI 完整说明,不建议依赖其参数细节
# macOS
alias rustdesk='/Applications/RustDesk.app/Contents/MacOS/RustDesk'

rustdesk --connect 123456789
rustdesk --connect '[email protected]:21116?key=YOUR_KEY'

# macOS Open URL
open 'rustdesk://connect/123?password=xxx&relay=true'
rustdesk://connect/123?password=xxx&relay=true
# /r force relay
123456789/r@public

rustdesk://terminal/<ID>
  • rendezvous Server 21116
  • 附加参数可以作为 ID query
    • --password PASS
    • --relay
    • --switch_uuid UUID - 内部会话切换参数
  • 如果只有 --password,那么是修改本地的 Password

管理

  • --get-id
  • --set-id
  • --password PASS - 设置密码
  • --set-unlock-pin PIN
  • --config CONFIG
  • --import-config RustDesk.toml
  • --option KEY VALUE
  • --server
  • --tray
  • --cm - Connection Manager
  • --whiteboard
  • --update DMG

Service

--service
--install-service
--uninstall-service
--check-hwcodec-config
--terminal-helper
--remove

Terminal

  • rust portable_pty
  • Windows pwsh.exe, Windows PowerShell, cmd.exe
  • 持久化 terminal-persistent=Y
# Guest
rustdesk --option enable-terminal Y
# Host
rustdesk --terminal 123456789

Web

rd.example.com:443

/ws/id -> hbbs:21118
/ws/relay -> hbbr:21119

FAQ

Unsupported Display server, X11 or Wayland expected

# systemd?
apk add elogind
loginctl

No Display

  • 当前没有显示器
  • Windows 使用 MSI 安装
    • 使用管理员,允许无用户的情况下运行
  • 其他解决方案
    • Headless Ghost HDMI 转接头
    • 虚拟显示驱动