Parsec + ZeroTier + Moon:远程连接与中转记录

整理 Parsec、ZeroTier 与 Moon 的远程连接方案、排障命令和配置步骤。

Parsec

  • mstsc+ZeroTier+moon和Parsec+ZeroTier+moon两个方案那个远程连接速度更快

    mstsc+ZeroTier+moon和Parsec+ZeroTier+moon两个方案的远程连接速度可能会有一些差异,具体取决于您的网络环境和配置。一般来说,ZeroTier+moon可以提供更快的中转节点,让您的设备“环绕”它,减少网络延迟和丢包。但是,Parsec也有自己的优化算法,可以寻找两个设备之间的最短路径,可能会使用ZeroTier网络作为中转。另外,mstsc和Parsec在编码和解码方面也有不同的性能表现,这也会影响远程连接速度。因此,您可以根据您的实际需求和体验来选择适合您的方案。

  • 连接方和被连接方相距4000Km,连接方需要经常换地点所以使用的网络带宽不高,那么在这种情况下mstsc+ZeroTier+moon和Parsec+ZeroTier+moon两个方案那个更流畅

    • 流畅度是指远程桌面连接的速度和稳定性,它受到多种因素的影响,如网络带宽、延迟、丢包、编码、解码等。
    • mstsc+ZeroTier+moon的流畅度一般取决于ZeroTier的网络连接质量,如果使用了moon作为中继服务器,那么流畅度可能会有所提高,但也可能会出现不稳定或不兼容的问题。
    • Parsec+ZeroTier+moon的流畅度一般取决于Parsec的网络连接质量,如果使用了ZeroTier作为虚拟局域网,那么流畅度可能会有所提高,但也需要配置和管理网络设置。
    • 一般来说,Parsec+ZeroTier+moon的流畅度会高于mstsc+ZeroTier+moon的流畅度,因为Parsec使用了更先进的编码和解码技术,可以在低带宽下提供高画质和低延迟的远程桌面连接。

    综上所述,如果你非要说远程连接的流畅度,那么Parsec+ZeroTier+moon可能是一个更好的选择

  • Bitrate是指单位时间内传输或处理的二进制位数,也就是数据的流量。Bitrate越高,表示数据的量越大,画面的细节越多,清晰度越高。Bitrate越低,表示数据的量越小,画面的细节越少,清晰度越低。在Parsec中,您可以看到您和连接方之间的Bitrate数值,这个数值反映了您的网络速度和画质。一般来说,您希望这个数值尽可能接近您设置的带宽值,这样才能保证您有一个流畅和清晰的游戏体验。

win键冲突问题

image-20230311173407372

800问题方法1

netsh winhttp reset proxy

800问题方法2

  • 打开clash设置

    image-20230311154807017

  • 进入%appdata%\parsec

    image-20230311155119641

  • 在config.txt中填入

    #此处填的代理地址
    app_proxy_address =
    app_proxy_scheme = http
    app_proxy = true
    #此处填的是代理端口
    app_proxy_port = 7890

ZeroTier

  • ZeroTier介绍

    image-20230310185902077

    它的原理是将几个设备加入到了一个大的局域网中,然后大家就可以互相通讯了:

    image-20230310185927292

  • ZeroTier指令介绍

    • zerotier-cli listpeers:显示这台设备的ZeroTier VL(虚拟层,点对点网络)的已知并且最近(在过去30分钟左右)通信过的节点。您可以使用-j选项来获得更详细的输出。您还可以通过输出来判断节点之间的连接状态是直连还是中继。
    • zerotier-cli orbit:是让当前节点“环绕”您的moon服务器的命令123。您需要在命令后面输入您的moon服务器的world ID和地址,例如:zerotier-cli orbit deadbeef00 deadbeef002。您也可以将您的moon服务器的world definition文件放在您的节点的moons.d目录中,这样也可以让您的节点“环绕”您的moon服务器。
  • 安装过程

    1. 注册ZeroTier

      打开zeroTier网站开始注册登录:https://accounts.zerotier.com/

    2. 登陆之后,直接点击create a network:创建一个网络

      image-20230310190058126

    3. 有了网络之后,会给你一个网络id,这个网络id是非常重要的,其它设备要加入的这个网络,就需要这个网络id,所以还是很重要的,点击这个id就可以进入具体的设置

      image-20230310190112250

    4. 其它设备加入这个网络

      例如需要远程连接的两台电脑都需要加入

      • 先去各个设备下载对应的app安装:Download – ZeroTier

        image-20230310190212276

      • 下载安装之后,就可以再各个设备上点击join network:

        image-20230310190313937

      • 然后填上刚才的那个id号

      • 如果是windows系统,会提示你让选择是否开启网络发现,一定要选择是

        image-20230310190346203

      • 然后到zerotier后台,对刚开的设备进行授权,允许它加入局域网中,红色虚线的是没有网络授权的设备,蓝色的表示授权了,只需要勾选上,此设备就可以加入网里面了

        image-20230310190414218

      • 然后回到终端,确保连接成功,如果没有勾选,选择退出,然后重新打开就可以了

        image-20230310190429163

  • 测试

    ping红框地址

    image-20230310190512303

    切换wifi不影响

Moon

通过搭建moon中转,实现低延迟

  • 准备工作

    需要一台国内中转服务器 B,配置无所谓,带宽1M还是100M都无所谓,它的作用不是转发你的流量,他的作用通俗将是通过这台服务器找到主控设备A 和 被控设备C,无需通过Zerotier官网的海外服务器来搜索,类似于DNS服务器的作用把。

  • 为何moon能加快ZeroTier中两个设备的远程连接速度

    moon能加快ZeroTier中两个设备的远程连接速度的原因是,moon可以作为根服务器之一,让您的设备“环绕”它,这样您的设备就可以使用您的moon服务器作为中转节点,而不是使用ZeroTier的公共根服务器。这样可以减少网络延迟和丢包,提高连接质量。ZeroTier本身也具有多路径、多播和桥接等功能,可以提高网络速度。

  • 服务端配置

    • 服务器端 B上面安装Zerotier

      curl -s https://install.zerotier.com/ | sudo bash
    • 将服务器端B 加入到虚拟局域网中,请将网络ID这四个字替换成你之前建立的虚拟局域网的16位ID,别忘了在Zerotier网站上也同意一下加入网络

      zerotier-cli join 网络ID
    • 生成moon.json文件

      cd /var/lib/zerotier-one
      zerotier-idtool initmoon identity.public > moon.json
    • 修改moon.json

      vi moon.json
      #进入文件
      "stableEndpoints" : ["服务端B的ip/9993"]

      image-20230310195209551

      注意:

      • 引号 ip为服务端的公务ip地址,后面的端口号是moon的端口
      • 别忘了在服务器提供商开启9993的端口
    • 生成签名文件,这一步之后会生成一个000000xxxxxxxxx.moon的文件,同时把这个文件下载到本地,之后要用

      zerotier-idtool genmoon moon.json
    • 将这000000xxxxxxxxx.moon文件移动至moons.d文件夹,注意把文件名xxxx替换成你自己的

      mkdir moons.d
      move 000000xxxxxxxxx.moon moons.d
      service zerotier-one restart  # 之后重启服务器端B的Zerotier
    • 设置开机自启动

      sudo systemctl enable zerotier-one.service
  • 主控制端A 和 被控制端B

    • 首先需要修改权限否则无法操作Zerotier安装目录
      1. 右键点击你要修改的文件,选择属性;
      2. 然后点击【安全】选项卡,再点击【高级】按钮;
      3. 进入高级设置中,再点击“更改”;
      4. 在选择用户和组中,我们再点击高级;
      5. 点击“立即查找”,之后会列出用户,我们选择当前帐户,小编的是Adminitrator 选中后点击确认;
      6. 确定后回到文件属性-安全界面,然后点击编辑;
      7. 然后下方权限处勾选完全控制;最后确定保存。
    • 在Zerotier的安装目录(Windows: C:\ProgramData\ZeroTier\One)下,创建moons.d文件夹,并把之前下载的000000xxxxxxxxx.moon的文件 复制到里面就好啦,两台电脑都要这么做哦
    • 在windows自带的搜索,搜索服务,在服务中找到Zerotier One 右键重新启动,主控制端A和被控制端C都要进行这一步操作
  • 检查是否成功(8c3281e09e)

    • 主控制端A和被控制端C中各自打开cmd命令行输入zerotier-cli listpeers看一看是否开启成功,找到moon这一行,看看是否有-1,如果有就是操作失败了

      如果失败了可以尝试在服务中找到Zerotier One 右键重新启动,然后使用zerotier-cli orbit xxxxx xxxxx(xxxx是生成的0000xxxx)然后再次zerotier-cli listpeers

    • 介绍

      PLANET 行星服务器,Zerotier 根服务器
      MOON 卫星服务器,用户自建的私有根服务器,起到代理加速的作用
      LEAF 网络客户端,就是每台连接到网络节点。

8c3281e09e

zerotier-cli orbit 8c3281e09e 8c3281e09e