Parsec是一款优秀的串流远程工具,虽然目前国内主流远程控制工具如ToDesk,向日葵等都支持了串流,但服务器成本摆在那里,要么限速,要么限画质,而且免费的链路并不能保证稳定性,所以如果有VPS,最好自己做个软路由
串流: 直接将显卡数据通过网络传输到另一个电脑,并使用另一台电脑的显卡解码显示,比传统图像压缩传递显示的方法快得多,Parsec支持H254的编码,以及新的H265编码,使用前根据自己的显卡进行配置即可,目前市面的云游戏用的都是串流技术,所以用此方案你可以自建云电脑,在网络稳定的情况下,可以达到本地操作的效果,这个在B站上已经有不少人分享过,就不做累述了
Parsec会帮你建立P2P的网络连接,如果无法建立,就不无使用,提示6023的错误码,官方提供的解决方案里,有一项就是使用Zerotier进行异地组网
Zerotier目前客户端已经覆盖常规平台,下载安装后会在本地新建一个zerotier的虚拟网卡,每个zerotier的客户端都是通过这个虚拟网卡实现异地组网的,如下图
具体原理如下:
1.zerotier存在一个plant根服务器(也有叫星云服务器的),它的作用就是帮助用户建立一个网络(私、公都可以),然后你可以得到这个网络的唯一id,在客户端选择加载这个网络(输入创建的网络id即可),根服务器会给你的所有接入该网络的设备的zerotier网卡分配一个私有网络ip,(真实的数据还是走的上网的网卡),这样我们可以通过他们的私有网络ip进行相互访问。
下面是重点
1.zerotier默认会检查新建网络中的所有设备进行p2p直连,如果可以直连就走直连(这一点不用想,基于国内复杂的NAT网络结构基本不可能,但也有例外,比如你的小区是一个大的局域网,你连接的目标设备也在这个小区里...),如果没有p2p的条件,zerotier就会用自己的服务器(官方称moon节点)帮你进行转发,遗憾的是他们的服务器都在国外,访问很慢,基本无法满足日常需求
2.zerotier支持用户自建网络中的一台设备做为moon节点进行数据转发,也就是说如果你有一台稳定的VPS,并且加入到你的自建网络,你就可以设置他为moon节点
3.zerotier不支持用户自己创建plant根服务器,必须使用官方的根服务器,所以注册创建网络这一步只能在官网做,Github上有一些所谓的plant服务并打包了docker告诉你可以一键部署的,那都不是真正意义上的plant服务器,只是自己做了一个管理后台,本质上还是访问的官方进行的创建,所以如果访问不了官方,使用自己的“科学上网工具”即可
4.目前市面上的异地组网原理与zerotier一样,都是通过虚拟网卡进行相互访问,上点规模的都是自己实现plant服务,也有用zerotier方案的,本质上卖的是moon,明白这一点你就知道不存在免费一说,就算直接用的zerotier的方案,也有转发服务器的成本在,如果是自己做的plant,还是研发成本在,至少客户端也会重做,虽然本质上只是一个socket连接
Zerotier moon配置步骤(假设你已经在官网建号并创建了一个私有网络)
我的配置环境如下,服务器centos7.6 客户端两台windows,一台mac,为方便起见,我使用root账户,如果你不是请自行sudo
--------------------------------------------服务器配置-----------------------------------------------
1.在服务器上安装zerotier
curl -s https://install.zerotier.com | sudo bash
2.安装成功后加入你的自建网络
zerotier-cli join xxxxxxxx
3.进入 zerotier-one 安装目录 /var/lib/zerotier-one
cd /var/lib/zerotier-one
4.生成moon.json文件
zerotier-idtool initmoon identity.public >> moon.json
5.使用vi命令编辑moon.json文件,端口可以自己指定,但必须要在防火墙上设置允许端口通过(建议直接使用9993,并把TCP和UDP都开了,我之前没有开UDP,有一台终端死活连不上)
"stableEndpoints": [] 修改成 "stableEndpoints": ["ServerIP/9993"],将 ServerIP 替换成云服务器的公网IP
6.对moon.json进行签名,签名完成后会得到一个000000xxxxxxxxxx.moon的文件
zerotier-idtool genmoon moon.json
7.创建一个moon.d文件夹,并签名文件放进去
mkdir moons.d mv 000000xxxxxxxxxx.moon moons.d
8.重启zerotier 服务
service zerotier-one restart
--------------------------------------------客户端配置-----------------------------------------------
1.安装好zerotier客户端,并加入到自建网络
如果是mac,打开终端输入
zerotier-cli listpeers
查看所有的节点,如果找到服务器的唯一id,(此时服务器的节点类型应该是LEAF,我们需要将它设置成Moon节点,请注意这一步骤所有的客户端都要设置)
zerotier-cli orbit xxxxxxxxxx xxxxxxxxxx
另一种方法是用上面创建的签名文件来设置moon,使用方式和服务器配置类型,在安装目录新建moons.d文件夹,然后用scp命令把服务器生成的签名文件拷贝到本地moons.d文件夹,最后重启服务即可(windows重启服务win+R,services回车,找到zeroiter服务,点属性可以查看安装路径,右键可以选择重启服务)
xxxxxxxxxx替换成服务器的唯一id,完成后再次使用listpeers指令查看结果,如果节点类型是Moon代表成功
如果是windows,与mac配置相同,区别是使用zerotier-cil指令时要加上.bat,不需要设置环境变量,客户端安装完成后就自己加上了,如果出现找不到指令的提示,可以尝试设置环境变量到安装目录即可
--------------------------------------------其他注意事项-----------------------------------------------
zerotier-cli
直接回车可以查看所有功能参数
1.当你可以ping通网络中的其他设置时,你可以使用parsec进行远程连接了,如果ping不通也有可能是防火墙不允许IMCP报文回显,注意打开即可
2.Parsec如果连接不上报错-800,使用“科学上网工具”,也可以参照使用openvpn as 搭建vpn服务器自己部署
3.Parsec连接成功后会直接使用p2p直连,此时你关闭“科学上网工具也不会断开连接
卸载
rpm -e zerotier-one rm -rf zerotier-one
最后看下效果:(腾讯VPS北京区,6M带宽,家(北京)中笔记本连接公司(北京)电脑效果,干原神无延迟,日常工作绰绰有余)
文章评论