RustDesk 自建跨平台远程桌面:三条路径装好连上
【免费下载链接】rustdeskAn open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.项目地址: https://gitcode.com/GitHub_Trending/ru/rustdesk
RustDesk 是一款用 Rust 写的开源远程桌面软件,跨平台支持 Windows、macOS、Linux,装上就能互控,还能自建服务器把数据攥在自己手里。说白了,它相当于给你的电脑开了条视频通话通道:对方看到你的画面,你操作它的键盘鼠标。偶尔要连回家里那台机器、或者帮朋友排查问题的开发者,正合适。
一句话概括:按你的场景选一条路径,装好、连上、加固、排障一次讲完。
先选场景:一张表定路径
先别急着敲命令,对号入座:
| 你的场景 | 推荐路径 | 预计耗时 | 需要 root |
|---|---|---|---|
| ① 个人偶尔远程家里的电脑 | 路径 A:官方安装包 | 约 10 分钟 | 否 |
| ② 开发者日常调试常用机器 | 路径 B:包管理器 | 约 20 分钟 | 通常否 |
| ③ 企业批量纳管多台设备 | 路径 C:源码编译 / 容器化 | 2~4 小时 | 是 |
- ① 选 A:装完打开就有 ID 和密码,10 分钟连通。
- ② 选 B:命令行装、命令行管,升级也方便。
- ③ 选 C:需要统一版本、headless 服务器常驻,才走这条路。
路径 A:双击官方安装包,10 分钟上手
去项目的发行版发布页下载对应系统的安装包(页面搜 "RustDesk releases")。
- Windows:拿到
.exe安装包,双击按向导走完即可。 - macOS:拿到
.dmg,把应用拖进 Applications,首次启动按提示授予屏幕录制和辅助功能权限。 - Linux:
.deb给 Debian/Ubuntu,.rpm给 Fedora 系,想免安装就下.AppImage。
装 deb 包,或 AppImage 免安装直接启动:
# Debian/Ubuntu 装 deb sudo apt install ./rustdesk-*.deb # AppImage 免安装启动 chmod +x rustdesk-*.AppImage && ./rustdesk-*.AppImage打开主界面,看到一串 10 位 ID 和一串默认密码,就说明装好了。唯一验证命令(Linux/macOS 终端):
rustdesk --version有版本号输出即通过;Windows 直接看主界面是否显示 ID。
路径 B:包管理器装,日常调试够用
macOS(Homebrew)
一条命令装好:
brew install --cask rustdeskWindows(winget)
winget install RustDeskArch / Manjaro
yay -S rustdeskFedora / CentOS
sudo dnf install ./rustdesk-*.rpm验证命令与路径 A 相同:rustdesk --version。包管理器的好处是brew upgrade、winget upgrade这类命令就能保持版本跟进。
路径 C:源码编译或容器化,面向 headless 服务器
先说坑点,再给命令。
- vcpkg 要固定在
2023.04.15这个版本,新版会编不过。 - 桌面版 GUI 有 Flutter 一套构建流程,只跑服务端的话不必碰。
- 编出来的二进制要配合 sciter 动态库一起跑(构建文档里有说明)。
克隆仓库:
git clone https://gitcode.com/GitHub_Trending/ru/rustdesk cd rustdeskUbuntu/Debian 依赖(一次装全):
sudo apt install -y g++ gcc git curl nasm yasm libgtk-3-dev clang \ libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev \ libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake ninja-build libclang-dev装四个编解码依赖并编译:
vcpkg install libvpx libyuv opus aom cargo build --release不想自己折腾工具链,直接走容器:仓库根目录就放着 Dockerfile 和 entrypoint.sh,
容器化构建:
docker build -t my-rustdesk .验证:容器里systemctl status rustdesk看到 running,或编译版./target/release/rustdesk --version有输出。headless 服务器只跑rustdesk --service即可,不需要桌面环境。
连上:没有公网 IP 也能互相找到
默认走官方公共中继/信令服务器,两台机器都在内网也能通——中继就是"电话转接员":双方各自连转接员,由它转发;直连则是双方互相拨通,跳过转接员,延迟更低。
要自建服务器,主界面点"ID/服务器",填你的服务器地址和密钥即可。对应的最小配置(docs/README-ZH.md 有完整说明):
# 配置目录下的 RustDesk.toml id = "1234567890" # 自动生成,别动 rendezvous-server = "192.168.1.100:21117" # ← 必改:你的服务器 key = "5Qbwsde3unUcJB..." # ← 必改:服务器侧生成的 64 位密钥其余字段留默认。自建服务器上把21115~21118四个端口放行(21117 是中转,21118 传文件):
sudo ufw allow 21115:21118/tcp加固:七条安全底线
🔒 默认状态下有两处"裸奔":ID 可被他人试探是否存在;默认密码明文显示在主界面且永不更换。看到过你屏幕的人,记住密码就能随时回来。最小加固方案如下:
- 改掉默认密码:对每个被控端设置强密码,别再用主界面那串。
- 防火墙只放 4 个端口:
sudo ufw allow 21115:21118/tcp,能限源 IP 就限源 IP。 - 自建服务器:信令和流量都过自己的机器,不依赖公共节点。
- 关闭用不到的功能:对不信任的对方关掉文件传输和音频。
- ID 不外传:ID 是入口,泄露等于把门牌号贴门上。
- headless 机器跑系统服务:用仓库里的 res/rustdesk.service,别依赖手动启动。
- 定期升级:远程工具的安全更新别拖。
排障:30 秒速查表
🛠 出问题时按这张表走,别先怀疑人生。
| 症状 | 30 秒诊断 | 最常见解法 |
|---|---|---|
| 连接超时 | nc -vz 目标IP 21117 | 防火墙没放行,或地址端口填错 |
| 能连但很卡 | mtr 目标IP跑 10 秒 | 中继/直连切换,或换服务器 |
| 画面能动不能控 | 看被控端"允许控制"权限 | 重新授权,核对密码 |
| macOS 无声 | 查屏幕录制 + 辅助功能权限 | 两项都重开,重启应用 |
| headless 服务器连不上 | systemctl status rustdesk | 服务没起,装好并 enable 服务文件 |
还不行就抓日志:
journalctl -u rustdesk -f日志文件位置:Windows 在%APPDATA%\RustDesk\log,macOS 在~/Library/Logs/RustDesk,Linux 在~/.local/share/RustDesk,找时间戳最近的报错往上翻。
进阶:企业级与 CI/CD 的深水区
批量纳管时,用 Ansible 之类的工具统一推 deb/rpm 和服务器配置,打包脚本可直接参考仓库里res/DEBIAN/下的安装脚本和rpm.spec;移动端和 Flutter 界面的构建脚本都收在flutter/目录,CI 集成照着里面的脚本抄即可,这里不展开。
一套二进制走通三大平台,自建的代价只是一台小服务器。现在打开终端,跑一遍你那条路径的rustdesk --version,然后去连第二台机器吧。
【免费下载链接】rustdeskAn open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.项目地址: https://gitcode.com/GitHub_Trending/ru/rustdesk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考