# ZeroTier-One搭建moon节点
Zerotier可以组建虚拟局域网,并且是P2P直连的,这个可以说是非常爽了,你可以在公司使用微软自带的远程连接直连自己家里边的电脑,访问共享远程控制等。想要P2P访问必须先通过一个中介进行连接,官方的节点在网络高峰期不是很好使,所以最好在vps上建立一个moon节点。
作为Moon服务器不需要具备太强大的CPU性能/内存空间和存储空间,虚拟机、VPS、或者云服务器甚至一个树莓派都行,我自己使用的vps是Ucloud (opens new window),首次注册可以买270块3年2M的主机,1C2G的配置,性价比还是很高的,关键是2M带宽,对于转发的提升是很明显的
# 安装配置ZeroTier
curl -s https://install.zerotier.com | sudo bash
sudo systemctl start zerotier-one.service
sudo systemctl enable zerotier-one.service
# 客户端执行:将安装好ZeroTier的加入你事先注册好的ZeroTier虚拟局域网中
sudo zerotier-cli join asdfasdf
2
3
4
5
6
7
8
9
此处的asdfasdf是本人ZeroTier虚拟局域网的ID,请更改为你本人自己的network ID
然后去zerotier管理页面,对加入的设备进行打钩
# 搭建Moon中转服务器
# 生成moon.json
cd /var/lib/zerotier-one/
sudo zerotier-idtool initmoon identity.public > moon.json
2
修改刚刚生成的配置文件moon.json,(主要是添加公网IP,公网IP是服务器的IP,9993是zerotier的默认端口,你服务器防火墙上需要开放UDP:9993,否则是连接不上Moon的)
修改stableEndpoints
{
"id": "xxxxx",
"objtype": "world",
"roots": [
{
"identity": "xxxx:0:eeee",
"stableEndpoints": ["10.10.0.0/9993"]
}
],
"signingKey": "asdfasdfasdf",
"signingKey_SECRET": "asdfasdfasdfasd",
"updatesMustBeSignedBy": "asdfasdfasdf",
"worldType": "moon"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
此处的10.10.0.0就是公网IP,这你自己服务器的IP地址
# 生成签名文件
zerotier-idtool genmoon moon.json
执行之后会生产一个000000xxxx.moon的文件,将这个文件通过sz下载到本地
# 将moon节点加入网络
创建moons.d文件夹,并把签名文件移动到文件夹内
cd /var/lib/zerotier-one/
sudo mkdir moons.d
sudo mv 000000xxxxxx.moon moons.d/
2
3
此处的000000xxxxxx.moon是上一步生成的文件名
# 重启中转服务器的 zerotier-one
sudo systemctl restart zerotier-one
到这里,服务器的moon就配置完成了。
# 客户端配置
对客户端安装zerotier后,将配置好的moon文件配置到客户端,并重启zerotier完成与moon的连接。
# Linux
将之前下载的文件配置到对应路径
cd /var/lib/zerotier-one/
sudo mkdir moons.d
sudo scp username@xxxxx:/var/lib/zerotier-one/moons.d/000000xxxxxxxx.moon /var/lib/zerotier-one/moons.d
2
3
使用之前步骤中 moon.json 文件中的 id 值 (10 位的字符串,就是xxxxxx),不知道的话在moon服务器上执行如下命令可以得到id。
执行命令:grep id /var/lib/zerotier-one/moon.json | head -n 1
然后在客户端机器里执行命令:
执行命令:zerotier-cli orbit ed2c88f24 ed2c88f24
,注意,这里id有两次
此处的ed2c88f24刚刚在服务器里生成moon.json得到的ID值
# Windows
打开服务程序services.msc, 找到服务"ZeroTier One", 并且在属性内找到该服务可执行文件路径,并且在其下建立moons.d文件夹,然后将moon服务器下生成的000xxxx.moon文件,拷贝到此文件夹内..再重启该服务即可(计算机右键管理-找到服务双击打开-找到zerotier one右键重新启动即可)
路径一般是Windows: C:\ProgramData\ZeroTier\One
# MAC OS
路径在/Library/Application Support/ZeroTier/One/
,其他跟linux无区别
# 测试是否成功
执行命令:sudo zerotier-cli listpeers
,若有出现你的服务器IP地址,即可证明moon连接成功
完成客户端配置
# 取消Orbit
sudo zerotier-cli deorbit worldid