一、方案原理
传统情况下,RustDesk 需要通过 ID/信令服务帮助两台设备发现彼此,并尝试 P2P;如果 P2P 失败,则可能使用 Relay 中继。
本方案换一个思路:
Tailscale
↓
负责建立设备之间的虚拟网络
↓
RustDesk
↓
直接通过 Tailscale IP 连接目标 PC
可以理解为:
iPhone / iPad
│
│ Tailscale
↓
虚拟网络
│
↓
Windows PC
│
└── RustDesk :21118
二、方案特点
- 两台设备不需要公网 IP。
- 两台设备可以位于不同城市、不同运营商。
- Tailscale 会尝试建立 Direct 连接;无法直接连接时可能使用 Relay。
- RustDesk 使用 Tailscale 分配的虚拟 IP 进行直接访问。
- 不需要在家庭路由器上做端口转发。
- Tailscale 使用 WireGuard 加密设备间通信。
- RustDesk 负责远程桌面、鼠标和键盘控制。
三、准备工作
Windows PC
安装:
iPhone / iPad
安装:
两台设备登录到同一个 Tailscale 网络(tailnet)。
四、Windows PC 配置 Tailscale
安装并登录 Tailscale 后,在 Windows 中确认设备已经 Connected。
查看 Tailscale IP:
tailscale ip -4
示例:
100.117.xx.xx
实际使用时请以你自己的 Tailscale IP 为准。
五、Windows PC 配置 RustDesk
打开:
RustDesk
→ 设置
→ 安全
→ 允许 IP 直接访问
默认直接 IP 端口:
21118
开启后,可以在 Windows 中确认 RustDesk 正在监听:
netstat -ano | findstr :21118
正常情况下可以看到:
0.0.0.0:21118 LISTENING
或:
[::]:21118 LISTENING
六、Windows 防火墙
如果 Tailscale 可以 Ping PC,但 RustDesk 无法连接,可以检查 Windows 防火墙。
管理员 PowerShell 可以临时添加:
New-NetFirewallRule `
-DisplayName "RustDesk Tailscale 21118" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 21118 `
-Action Allow `
-Profile Any
正式使用时,可以根据自己的安全要求进一步限制来源范围。
七、iPhone / iPad 配置
安装 Tailscale 后:
登录与 PC 相同的账号(建议使用非谷歌账号,因为iOS不允许同时使用两个VPN)
↓
允许添加 VPN 配置
↓
确认 Tailscale 已连接
在 Tailscale 中确认可以看到 Windows PC。
可以使用 Tailscale 的 Ping 功能测试:
iPhone / iPad
↓
Tailscale Ping
↓
Windows PC
Ping 成功说明 Tailscale 网络层已经打通。
八、RustDesk 直接连接
在 iPhone / iPad 的 RustDesk 地址输入框中,输入:
100.117.xx.xx:21118
其中 100.117.xx.xx 替换成 Windows PC 实际的 Tailscale IP。
连接结构:
iPad
↓
Tailscale
↓
100.117.xx.xx:21118
↓
Windows PC
连接成功后,RustDesk 即可通过 Tailscale 网络进行远程控制。
九、常见问题
1. RustDesk 显示“未就绪,请检查网络连接”
如果采用:
Tailscale IP + Direct IP
而且已经能够直接连接:
100.117.xx.xx:21118
那么 RustDesk 主界面的“未就绪”不一定影响这条直接 IP 连接路径。
2. Tailscale Ping 成功,但 RustDesk 连接失败
按以下顺序检查:
1. RustDesk 是否开启“允许 IP 直接访问”
2. 端口是否为 21118
3. Windows 是否监听 21118
4. Windows 防火墙是否允许 TCP 21118
5. RustDesk 地址是否写成:100.117.xx.xx:21118
3. 两台设备没有公网 IP,可以使用吗?
可以。Tailscale 的设计目标之一就是让 NAT 后面的设备建立虚拟网络。
设备可能只有:
192.168.xx.xx
这样的本地地址,同时拥有:
100.117.xx.xx
这样的 Tailscale 地址。
RustDesk 使用后者通信。
4. Tailscale IP 会不会变化?
正常情况下,设备切换 Wi-Fi、移动到其他地点等,Tailscale IP 通常保持不变。
但设备从 Tailscale 网络中移除、重新注册或设备身份发生变化时,IP 可能改变。
5. 同一个 Wi-Fi 下如何测试?
关闭 Tailscale 后,如果 PC 的真实局域网地址是 192.168.xx.xx,可以在 iPhone/iPad 的 RustDesk 中直接测试:
192.168.xx.xx:21118
这可以验证 RustDesk 的物理局域网 Direct IP 是否正常。
十、推荐的最终结构
Tailscale
┌──────────────────┐
│ 私有虚拟网络 │
└────────┬─────────┘
│
┌────────┴────────┐
↓ ↓
iPhone/iPad Windows PC
│ │
│ │
└─── RustDesk ────┘
│
TCP 21118
核心分工:
Tailscale → 负责网络互通
RustDesk → 负责远程桌面
十一、可扩展性
Tailscale 建立的是设备间虚拟网络,因此除 RustDesk 外,还可以用于:
RustDesk
Syncthing
RDP
SSH
SMB
NAS
局域网 Web 服务
可以把 Tailscale 理解为:
把异地设备组成一个加密的虚拟局域网。
RustDesk 只是运行在这个虚拟网络上的一个应用。