Sunshine+Moonlight+Tailscale远程桌面部署与调优

# 这套方案能做什么 本篇博客着重于介绍使用这一套流程实现跨平台的远程桌面方法,即: 1. 我在实验室有台高性能电脑,我的所有数据和工作环境在该电脑上,所有工作我都需要在该电脑上完成 2. 我不在实验室又需要进行办公,我应当可以掏出我的笔记本电脑远程办公 3. 我没有笔记本,只有平板(配鼠标键盘),我也可以高效远程办公 4. 我在外只有手机,我需要紧急处理一些工作,我可以掏出手机进行远程处理

为什么不使用向日葵/ToDesk?与之相比的优缺点是什么?

优点

  1. 更高清、更流畅、延迟更低,而且不需要花钱,没有广告
  2. 平板插上键鼠能够几乎完美响应Windows快捷键(这是我使用该方法的初衷)
  3. 触屏交互更合理
  4. 开源,有大量第三方插件

缺点

  1. 对网络基础设施有一定要求,当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:如图所示(内容包含via DERP)代表这两个设备无法点对点连接,需要通过香港(hkg)的DERP中继服务器才能连接。
    在这里插入图片描述
  • 情况2:Tailscale在尝试3次后via DERP变成via [ip],说明找到了最近的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为示例,不同系统可能有一定差异:

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

疑难解决

连接不稳定

参考检查Tailscale连接章节确定当前连接情况,通常不稳定和丢包严重是由于无法建立直连通道,只能使用海外DERP服务器中转导致的,解决方法主要有两种。

  1. 非同一局域网下,能否建立直连通道取决于双方设备网络的NAT类型,可以尝试从这个方面入手试下能不能解决。参考:https://tailscale.com/blog/how-nat-traversal-works
  2. 自己就近搭建DERP服务器。参考:https://github.com/S4kur4/Derp-China
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值