3 步搞定自托管远程桌面:一套不经第三方服务器的 RustDesk 跨平台远控手册
【免费下载链接】rustdeskAn open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.项目地址: https://gitcode.com/GitHub_Trending/ru/rustdesk
你人在家里,公司办公室那台电脑需要帮客户排个障;你负责的 Linux 服务器又放在机房吃灰。用惯了的远程桌面服务倒是能连上,但画面和文件都要过厂商的服务器,免费额度一超就按席位收费,平台说封号就封号。RustDesk 解的就是这个结:一套自托管、自己说了算的远程桌面工具,跨平台远控Windows、macOS、Linux 乃至 Android / iOS,免费且开源——客户端自己装,服务器自己建,数据不出你的地盘。
选型决策:动手之前,先选对部署组合 🧭
RustDesk 的灵活性来自两个独立选择:连接走谁的中继、客户端以什么形态跑。把两个选择拆开,四种典型组合的取舍一目了然:
| 你是哪类人 | 连接方式 | 为什么适合你 | 代价是什么 |
|---|---|---|---|
| 个人,每天连一两台固定设备 | 官方公共中继 | 零搭建,装完即用 | 视频与文件走公共中继,延迟没有保障 |
| 公司数据敏感 | RustDesk 自建服务器(rendezvous + relay) | 数据全程自控,端口策略自己定 | 需要一台常开机器,并放行21115(NAT 探测)、21116(注册/UDP 打洞)、21117(中继转发)等端口 |
| 无头 Linux 服务器 | 容器化部署 | 镜像化交付、随时重建 | 容器内要备好显示与音频环境 |
| 团队五十台以上 | 自建 + 预置配置文件 | 员工零配置,统一接入入口 | 前期要投入一套铺机流程 |
客户端形态上,GUI 层同时维护 Flutter 与 Sciter 两套实现,主流平台装官方安装包即可;如果你要追踪最新特性或定制编译开关(如hwcodec硬编码、drm直采、vram显存捕获),可以看 构建说明 与 构建特性清单 从源码编译。服务端逻辑集中在 服务端代码,读一遍你就知道画面流、输入注入分别在哪一层处理。
自建服务器只需三个组件:hbbs 负责登记设备(rendezvous),hbbr 负责打洞失败后的中转(relay),外加一个 Web 客户端入口(对应21118 / 21119)。一台 1 核 2G 的轻量机足够小团队使用。
最小可用连接:3 步以内连上第一台设备
最短路径就三步,全程几乎零配置:
- 两端各装一份客户端:Windows 是
.exe安装包,macOS 是.dmg,Linux 可选.deb/.rpm/.AppImage; - 启动后界面直接给出本机ID和临时密码;
- 在控制端输入对端 ID、填密码、点连接。
Linux 上 AppImage 最省事,下载后两行命令就跑起来了:
chmod +x rustdesk-1.5.0-x86_64.AppImage ./rustdesk-1.5.0-x86_64.AppImage习惯包管理器的话,等价的一条命令是choco install rustdesk(Windows)、brew install --cask rustdesk(macOS)或sudo snap install rustdesk(Linux)。
连过的设备会被客户端记住,下次点一下就重连。提醒一句:临时密码会定期轮换,常连的设备建议立刻设成固定密码(见后面安全清单),省得每次两头核对。
分场景进阶:三种玩法,各配一套姿势
个人自用
够用就好:固定密码 + 快速连接,把家里、办公室两台设备互加为收藏。手机装一份 Android 客户端,出门在外就能回连办公室电脑查文件、传文档,体感和本地操作几乎没有差别。网络路径维持官方中继即可,不必为个人场景专门开机器。
远程办公
可靠性是第一诉求。建议自建服务器(或至少把中继指向离你最近的节点),再打开文件传输与音频通道。很多人低估了剪贴板同步的价值——它不是简单搬运,而是两端先交换格式清单、再按连接 ID 逐项取数据,连文件内容都能跨端粘贴。整条协商链路在 剪贴板模块 里有完整实现:
遇到"远程复制粘贴没反应",先怀疑两端格式协商失败或剪贴板权限不全,而不是软件坏了。
团队集中管理
工程化核心是四件事:批量装、常驻服务、配置预置、可观测。
- 静默安装:Windows 用
rustdesk-setup.exe /S无人值守推送,几十台机器几分钟铺完; - 服务常驻:Linux 下项目自带 Linux 服务单元,两条命令让被控端用户不登录也能接入:
sudo cp res/rustdesk.service /etc/systemd/system/ sudo systemctl enable --now rustdesk- 配置预置:把服务器地址、加密密钥、访问策略写进
RustDesk.toml随包分发——Windows 放%APPDATA%\RustDesk\config\,macOS 放~/Library/Application Support/RustDesk/config/,Linux 放~/.config/RustDesk/config/,员工装完即通; - 可观测:无头环境可用仓库根目录的 Docker 镜像定义 容器化运行,再挂一个定时脚本探活进程与服务器连通性,异常自动拉起。
体验与网络:画质、帧率与延迟怎么取舍 ⚡
连接建立时有两条路径:P2P 打洞成功走直连,延迟最低,跨网段通常能压到个位数到几十毫秒;打洞失败自动回落中继,可用性高但延迟上浮。理解这个差异,调参就有方向了。
| 参数 | 在哪调 | 作用 | 什么时候调 |
|---|---|---|---|
| 画质档位 | 会话中实时切换 | 画质优先 / 均衡 / 反应优先三档 | 画面卡顿时降一档 |
| 帧率 FPS | 会话设置 | 办公 30 帧足够,看片 60 帧 | 拖窗、播放视频发顿 |
| 码率 | 会话设置 | 清晰度与带宽的交换比例 | 上行带宽打满就下调 |
硬件编解码hwcodec | 编译特性 开关 | 把编码卸载到 GPU,CPU 占用大降 | 帧率低但 CPU 飙高时优先查它 |
直连阈值direct-threshold | 配置文件 | P2P 建连的成功时间窗 | 跨运营商打洞总失败时适当放宽 |
中继超时relay-timeout | 配置文件 | 打洞失败后多久回落中继 | 中继节点慢时配合调整 |
自建服务器做防火墙时,放行范围就是前面选型表里那几个端口;中继本身走加密通道,密钥在服务器侧配置,客户端侧不要图省事关掉加密。
RustDesk 安全配置:一份逐项打勾的清单 🔒
- 固定高强度密码:替换临时密码,并启用内置的双重验证(TOTP),防暴力破解;
- 登录失败锁定:在访问策略里设置连续失败锁定,别让账号敞开试;
- 白名单 / 黑名单:按设备 ID 或网段(如
192.168.1.0/24)限制谁可以发起连接; - 能力最小化:文件传输、远程打印、音频、端口转发,按需逐项开关,不用的就别露出来;
- macOS 三项权限给全:屏幕录制、辅助功能、输入监控缺一不可;授权乱了可以重置后重来:
tccutil reset ScreenCapture com.carriez.rustdesk- 加密通道别关:自建时给服务器配好加密密钥,画面、剪贴板、文件流全走加密;
- 端口收口:防火墙只放行21115–21117,Web 端口(21118 / 21119)不对外就不暴露。
最后一条最容易被忽视:RustDesk 的界面里内置了防诈骗提示——官方与任何客服永远不会向你要临时密码。谁找你要,谁就是骗子。
排障与观测:现象 → 根因 → 自查 → 处置 🔍
卡住时按这个顺序走,比盲目重装高效得多。先拿两条命令摸底:
systemctl status rustdesk ss -lntp | grep -E '2111[5-9]'| 现象 | 根因 | 自查 | 处置 |
|---|---|---|---|
| 一直连不上 | 防火墙挡了端口 | ss -lntp看端口是否在听 | 放行21115–21117(含 UDP) |
| 画面模糊、帧率低 | 带宽不足或未开硬编码 | 看会话状态里的实际码率 | 降画质档位,确认hwcodec已启用 |
| 延迟高、转圈久 | 走了中继而非直连 | 看连接类型是否显示 relay | 放宽direct-threshold,或换更近的自建节点 |
| 远程粘贴失效 | 两端格式协商失败或权限不全 | 看剪贴板相关日志 | 补齐系统权限,确认两端版本一致 |
| macOS 连不上 | 屏幕录制/辅助功能未授权 | 系统设置的隐私与安全性页 | 逐项授权后重启客户端 |
| Linux 黑屏 | Wayland 与捕获后端不兼容 | echo $XDG_SESSION_TYPE | 切回 X11 会话,或升级合成器 |
| 音频断续 | 缓冲过小或驱动异常 | 系统音量的实时占用 | 调大音频缓冲,换默认音频设备 |
都查不出来的,在设置里把日志级别调到 debug,真实报错会直接告诉你卡在哪一层。
行动建议:先给自己排一个一小时的日程
今天(约 1 小时):两端装好官方客户端,完成第一次连接;把被控端改成固定密码并开启双重验证;把常用设备加入快速连接。
本周:开一台轻量机把 hbbs + hbbr 建起来,客户端填入自建服务器地址做 A/B 对比——你会直观看到直连与中继的延迟差距;随后把白名单、失败锁定、能力开关逐项勾完;被控端注册为常驻服务(Windows 服务或 Linux 服务单元),确认用户注销后依然可被接入。
开源自托管带来的不是某一项功能的领先,而是整条链路——注册、打洞、中转、密钥——都落在你自己手里。当所有设备都在你的掌控之下,远程办公就不再是"借别人的路回家",而是走自己的路。
【免费下载链接】rustdeskAn open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.项目地址: https://gitcode.com/GitHub_Trending/ru/rustdesk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考