
这套方案能做什么
本篇博客着重于介绍使用这一套流程实现跨平台的远程桌面方法,即:
- 我在实验室有台高性能电脑,我的所有数据和工作环境在该电脑上,所有工作我都需要在该电脑上完成
- 我不在实验室又需要进行办公,我应当可以掏出我的笔记本电脑远程办公
- 我没有笔记本,只有平板(配鼠标键盘),我也可以高效远程办公
- 我在外只有手机,我需要紧急处理一些工作,我可以掏出手机进行远程处理
为什么不使用向日葵/ToDesk?与之相比的优缺点是什么?
优点
- 更高清、更流畅、延迟更低,而且不需要花钱,没有广告
- 平板插上键鼠能够几乎完美响应Windows快捷键(这是我使用该方法的初衷)
- 触屏交互更合理
- 开源,有大量第三方插件
缺点
- 对网络基础设施有一定要求,当NAT过深,Tailscale无法使两设备在网络上直连时无法使用远程桌面(因此必需使用向日葵/ToDesk等其他手段作为备用)
方案部署
所有设备安装Tailscale
Tailscale用于在多个设备间进行虚拟组网,目的是使得各设备能够点对点连接。
下载链接:https://tailscale.com/download
还需要注册一个Tailscale帐号,然后在所有Tailscale客户端登录同一个帐号以连接同一个虚拟子网。
提醒:Windows版本的Tailscale没有GUI,打开后会出现在系统托盘里。

右键该图标,选择Network devices - My devices - 任一设备即可复制该设备在虚拟子网中的IP地址。
检查Tailscale连接(可跳过)
理想情况下,Tailscale组成的子网中,每台设备都能直接点对点连接另一个设备(延迟低,带宽高),而不需要中转服务器(延迟高,带宽受限)。Tailscale使用了一系列技术手段来实现该目的,但当网络条件复杂时(如多层NAT),这些技术手段不一定能够生效。
感兴趣的可以看下:Tailscale工作原理
Windows & Linux
打开终端,输入tailscale status可以看到所有连接该虚拟子网的设备及其IP

输入tailscale ping <目标IP或名称>即可检查本设备到目标设备的网络连接情况:
- 情况1:如图所示代表这两个设备无法点对点连接,需要通过香港(hkg)的DERP中继服务器才能连接。

- 情况2:Tailscale在尝试3次后找到了最近的
202.103.243.73:3261作为稳定的中转路由,实现了点对点连接。

安卓
安卓平台的Tailscale由于有GUI,方便很多。
- 情况1:无法连接或DERP中继

- 情况2:成功点对点连接

服务端部署Sunshine
下载地址:https://github.com/LizardByte/Sunshine

Windows系统选择这个后缀为exe的

安装Sunshine并运行后,在托盘可以找到该图标,打开后是一个网页控制台。首先需要在控制台上注册一个本地的帐号密码,用于Sunshine控制台的登录。

客户端部署Moonlight
Windows平台下载链接:https://github.com/moonlight-stream/moonlight-qt
安卓端下载链接:https://github.com/Axixi2233/moonlight-android
安卓端使用的是第三方的二次开发版本,主要增加了对键盘快捷键的支持。
安装并启动Moonlight客户端后点击右上角带加号的图标,然后输入部署了Sunshine的服务端设备在Tailscale子网中的IP地址,随后主界面会出现该设备的图标。

点击该设备的图标,第一次连接时需要验证,会弹出一个窗口给你一个PIN码

在服务端设备上打开Sunshine,输入PIN码认证该客户端

回到Moonlight,即可开始远程桌面。
Windows端Moonlight配置
调整Moonlight客户端设置,使其更加适应远程办公。
捕获系统快捷键后所有快捷键会在服务端电脑上响应,想要中断远程桌面连接按Ctrl+Shift+Alt+Q。

安卓端Moonlight配置
以下设置流程以Xiaomi HyperOS为示例,不同系统可能有一定差异:
- 在安卓无障碍模式中开启Monglight物理键盘,使其能绕过系统接管键盘按键
安卓-设置-更多设置-无障碍-已下载应用-Monglight物理键盘->开启 - 关闭开发者选项中的“启用系统优化”,否则ESC键无法正常使用
找不到开发者选项点我
安卓-设置-更多设置-开发者选项-启用系统优化->关闭 - 调整Moonlight客户端设置,使其更加适应远程办公
Moonlight-设置-基本设置-视频帧数调节->优先视频流畅度

902

被折叠的 条评论
为什么被折叠?



