Tailscale + RustDesk 远程桌面完整笔记
适用场景:实验室 Ubuntu(局域网,被控端) + macOS / iOS(控制端),从公网任意位置安全访问实验室电脑
一、方案原理与优势
| 组件 | 作用 |
|---|---|
| Tailscale | 基于 WireGuard 的零配置虚拟局域网,设备获得 100.x.x.x 私有 IP,无需公网 IP、无需端口映射 |
| RustDesk | 开源远程桌面,开启「直接 IP 访问」后通过 Tailscale IP 直连,数据走加密通道 |
核心优点:
- 比 ToDesk 更私密(几乎不经过第三方中继)
- 免费无连接时长 / 设备数限制
- 可同时支持桌面控制、SSH、文件传输
- 支持 macOS、iOS、Windows、Linux 作为控制端
两边都需要安装:Tailscale + RustDesk。
二、实验室 Ubuntu(被控端)完整配置
1. 安装 Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
浏览器打开链接,用 Google / Microsoft / GitHub 账号登录。
查看 IP:
tailscale ip -4
记下结果(示例:100.94.66.21)。
推荐设置(常开电脑):
sudo tailscale set --key-expiry=never
sudo systemctl enable --now tailscaled
2. 安装 RustDesk
从 GitHub Releases 下载最新 .deb:
cd ~/Downloads
sudo apt install -fy ./rustdesk-*.deb
确认服务运行并开机自启:
sudo systemctl enable --now rustdesk
systemctl status rustdesk
3. 配置 RustDesk(关键)
rustdesk
- 点击左侧 ID 旁的 三个点 → 设置
- 进入 安全 标签 → 点击 解锁安全设置
- 完成两项:
- 勾选 启用直接 IP 访问(Enable direct IP access)
- 点击 设置永久密码(建议 12 位以上,务必记牢)
4. 解决可能的黑屏问题(Ubuntu 24.04+)
Ubuntu 默认 Wayland,远程可能黑屏。建议切换到 Xorg:
- 注销 → 登录界面点击用户名旁齿轮 → 选择 Ubuntu on Xorg → 登录
永久切换(可选):
sudo nano /etc/gdm3/custom.conf
# 取消注释:WaylandEnable=false
sudo reboot
5. 开启 SSH 服务器(用于命令行和文件传输)
sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
确认状态:
sudo systemctl status ssh
# 或
sudo ss -tlnp | grep :22
安全建议:
- 优先只用 Tailscale IP 连接,不要把 22 端口暴露到公网
- 禁止 root 远程登录:编辑
/etc/ssh/sshd_config,设置PermitRootLogin no,然后sudo systemctl restart ssh
6. 开机自启最终确认
sudo systemctl enable --now tailscaled
sudo systemctl enable --now rustdesk
sudo systemctl enable --now ssh
# 检查结果
systemctl is-enabled tailscaled rustdesk ssh
systemctl is-active tailscaled rustdesk ssh
理想输出均为 enabled / active。
三、macOS M2(控制端)配置
1. 安装 Tailscale
- 打开 https://tailscale.com/download/mac
- 下载 Standalone 版本并安装
- 登录与 Ubuntu 同一个账号
- 允许 VPN 配置和系统扩展权限
2. 安装 RustDesk
brew install --cask rustdesk
或从 GitHub Releases 下载 macOS .dmg(选 aarch64)。
首次打开后,在 系统设置 → 隐私与安全性 中开启:
- 辅助功能(Accessibility)
- 屏幕录制(Screen Recording)
- 输入监控(Input Monitoring,如需要)
3. 连接 Ubuntu
- 打开 RustDesk
- 输入框输入 Ubuntu 的 Tailscale IP:
100.94.66.21 - 点击连接,输入永久密码
四、iOS(iPhone / iPad)作为控制端
| 功能 | 支持情况 |
|---|---|
| 用 iPhone/iPad 控制 Ubuntu | ✅ 支持 |
| 把 iPhone/iPad 作为被控端 | ❌ 不支持(苹果限制) |
步骤:
- App Store 安装 Tailscale 和 RustDesk
- Tailscale 登录同一账号
- RustDesk 输入
100.94.66.21+ 永久密码连接
五、文件传输方式
| 场景 | 推荐方式 | 说明 |
|---|---|---|
| 临时传几个文件 | RustDesk 内置文件传输 | 连接后点文件夹图标拖拽 |
| 经常传文件 / 大文件 | SCP / SFTP | 最稳定高效 |
| 图形界面传文件 | Cyberduck / Finder | 友好易用 |
| 持续同步文件夹 | Syncthing | 自动双向同步 |
SCP 命令示例(Tailscale IP)
# Mac → Ubuntu
scp ~/Desktop/文件.pdf 用户名@100.94.66.21:~/Downloads/
# Ubuntu → Mac
scp 用户名@100.94.66.21:~/Documents/报告.docx ~/Desktop/
# 传文件夹
scp -r ~/项目文件夹 用户名@100.94.66.21:~/
Finder 图形化连接
按 Cmd + K,输入:
sftp://100.94.66.21
输入 Ubuntu 用户名和密码即可。
SSH 登录
ssh 用户名@100.94.66.21
六、常用检查命令
Ubuntu 端:
# Tailscale
tailscale status
tailscale ip -4
# RustDesk
systemctl status rustdesk
# SSH
systemctl status ssh
sudo ss -tlnp | grep :22
macOS 端:
- 菜单栏查看 Tailscale 连接状态
- RustDesk 直接输入 IP 连接
七、常见问题与处理
| 问题 | 解决方法 |
|---|---|
| 连接超时 | 确认两边 Tailscale 已登录同一账号且在线 |
| 提示需要密码但连不上 | 确认 Ubuntu 已开启「直接 IP 访问」并设置永久密码 |
| 黑屏 | Ubuntu 切换到 Xorg(登录界面选 Ubuntu on Xorg) |
| 重启后无法连接 | 检查 systemctl status rustdesk 和 tailscale status |
| 文件传输慢 | 优先用 SCP/SFTP,避免走 RustDesk 中继 |
| 想改设备名称 | 登录 Tailscale 管理后台 修改 |
八、安全与维护建议
- 永久密码使用强密码,不要与其他账号共用
- 仅允许自己信任的设备加入 Tailscale 网络
- 优先通过 Tailscale IP 访问,避免暴露公网端口
- 定期更新 Tailscale 和 RustDesk
- 实验室电脑建议开启自动登录 + 适当延长锁屏时间
- 不需要时,可在 Tailscale 后台临时禁用设备
九、快速复现清单(新环境)
Ubuntu 被控端:
curl -fsSL https://tailscale.com/install.sh | sh && sudo tailscale upsudo tailscale set --key-expiry=never- 安装最新
rustdesk-*.deb,sudo systemctl enable --now rustdesk - 打开 RustDesk → 安全 → 启用直接 IP 访问 + 设置永久密码
sudo apt install -y openssh-server && sudo systemctl enable --now ssh- 记录
tailscale ip -4 - (推荐)切换到 Xorg
macOS / iOS 控制端:
- 安装 Tailscale,登录同一账号
- 安装 RustDesk
- 输入 Ubuntu 的
100.x.x.x+ 永久密码连接
十、本环境实际信息(参考)
| 项目 | 值 |
|---|---|
| Ubuntu Tailscale IP | 100.94.66.21 |
| Ubuntu 用户名 | steve-xiaohu-zhao |
| 控制端 | macOS M2 + iOS |
| 方案 | Tailscale + RustDesk + SSH |
此方案已在 Ubuntu(被控)+ macOS M2(控制)环境验证通过,可直接复用。
浙公网安备 33010602011771号