本文最后更新于56 天前,其中的信息可能已经过时,如有错误请发送邮件到1729915388@qq.com
前言
由于有远程控制设备的需求,使用parsec控制在寝室连接校园网的笔记本,出现6023的错误,查询后发现需要将设备放在同一个局域网中才能解决。
将设备加入同一个局域网有下面几种方法:
- 使用国产软件—贝锐蒲公英(免费只支持加入三个设备,且延迟比较高)
- 使用ZeroTier(Zerotier的服务器在国外,延迟比较高)
- 使用Tailscale(延迟比较高))
上面几种的方法延迟都比较高。可以自己搭建 moon 中转服务器,来实现稳定的服务。
注意:
- 1.2.4 版本之后的 ZeroTier 才支持 moon 服务器。
ZeroTier 配置并加入虚拟网络
在每个客户端上安装ZeroTier。
具体步骤见<https://blog.csdn.net/weixin_44904205/article/details/128278202>
下面是在服务器端安装ZeroTier
- 服务器上安装Zerotier
curl -s https://install.zerotier.com/ | sudo bash
- 将服务器端加入到虚拟局域网中,请将网络ID这四个字替换成你之前建立的虚拟局域网的16位ID,别忘了在Zerotier网站上也同意一下加入网络。
zerotier-cli join 网络ID
moon 服务器配置
- 进入 ZeroTier 配置文件目录。
cd /var/lib/zerotier-one
- 生成 moon.json 签名文件。
sudo zerotier-idtool initmoon identity.public >>moon.json
- 编辑
vim moon.json
可以看到如下信息: moon.json
{
"id": "0123456789",
"objtype": "world",
"roots": [
{
"identity": "xxxxxxxx:0:xxxxxxxx",
"stableEndpoints": []
}
],
"signingKey": "xxxxxxxx",
"signingKey_SECRET": "xxxxxxxx",
"updatesMustBeSignedBy": "xxxxxxxx",
"worldType": "moon"
}
注意:记录下 moon.json 文件中的 id 。
- 修改信息。 找到
"stableEndpoints": []
。 添加"IPv4地址/9993"
或者"IPv4地址/9993","IPv6地址/9993"
。 示例:
"stableEndpoints": ["1.2.3.4/9993","2001:abcd:abcd::1/9993" ]
- 生成 .moon 签名文件
zerotier-idtool genmoon moon.json
结果显示:
wrote 0000006xxxxxxxxx.moon (signed world with timestamp 15xxxxxxxxxx7)
- 创建 moon 结点文件夹。
mkdir /var/lib/zerotier-one/moods.d
- 将签名文件复制到 moods.d 文件夹中
cp 0000006xxxxxxxxx.moon moons.d/
- 重启 ZeroTier 服务
/etc/init.d/zerotier-one restart
设备连入 moon 服务器
自动配置
- 输入命令:
sudo zerotier-cli orbit [moon.json 文件中的 id] [moon.json 文件中的 id]
- Windows 有一点不同,需要使用管理员权限的 PowerShell 输入:
zerotier-cli orbit [moon.json 文件中的 id] [moon.json 文件中的 id]
手动配置
各个系统平台下 ZeroTier 目录位置 :
Windows: C:\ProgramData\ZeroTier\One
Macintosh: /Library/Application Support/ZeroTier/One (在 Terminal 中应为 /Library/Application\ Support/ZeroTier/One)
Linux: /var/lib/zerotier-one
FreeBSD/OpenBSD: /var/db/zerotier-one
- 在对应系统平台下的 ZeroTier 目录位置,创建 moods.d 文件夹。
复制sudo mkdir /var/lib/zerotier-one/moods.d
- 将 moon 服务器生成的 0000006xxxxxxxxx.moon 拷贝到 moods.d 文件夹下。
- 重启 zerotier-one 服务。
- Linux :
/etc/init.d/zerotier-one restart
- Windows :
- 按下 windows键+r ,打开 “运行” 窗口。
- 输入 services.msc 回车。
- 找到 ZeroTier One 服务,右键选择 “重新启动” 。
检测生效
- 在非 moon 的客户端,输入命令:
zerotier-cli listpeers
- Windows 有一点不同,需要使用管理员权限的 PowerShell 输入:
zerotier-cli listpeers
如果出现如下情况:
- moon 服务器的 ID 、IP 地址出现在列表中,证明联通 moon 服务器。
复制200 listpeers <ztaddr> <path> <latency> <version> <role>
...................
200 listpeers 6xxxxxxxxx [moon IPv4地址]/60723;11450;11405 -1 1.4.6 MOON
...................