注册zerotier账号

Zerotier官网 注册账号,笔者使用谷歌邮箱注册。

创建一个网络

  1. 注册好之后进去会有一个默认创建好的网络,没有的话,就创建一个网络
  2. 创建好点击进入,啥都不用改,记住[网络ID]即可

linux安装Zerotier

使用官方脚本安装:

1
curl -s https://install.zerotier.com | sudo bash

启动Zerotier服务:

1
sudo systemctl start zerotier-one

加入Zerotier网络:([网络ID]是刚开始让你记住那个)

1
sudo zerotier-cli join [网络ID]

离开某网络:

1
sudo zerotier-cli leave [网络ID]

Zerotier官网页面配置

进入刚才创建好的网络页面,下滑找到Members部分。刚加入这个网络的linux信息会显示在这里。
点击address前边的小扳手–>点击Allow Ethernet bridging,再把小扳手前边的框勾上即可。

习惯上:小扳手后边的Name/Description下边会备注对应的服务器名字,Managed IPs下边是自动分配的ip。假设加入该网络有两台服务器A和B,现在你想通过服务器A访问服务器B,就直接访问服务器B的IP即可(相当于内网穿透访问)。当然你也可以把这个IP修改成你喜欢的IP。

配置完成

以上过程完成了一台服务器的配置,如果想让其他服务器也加入这个局域网,执行前边相同的操作。

优化

zerotier默认使用全球的服务节点,高峰时刻不稳定,官方也有说明,可以搭建自己的moon服务器作为跳板,加速网络。需要有个云服务器。

安装zerotier

1
curl -s https://install.zerotier.com | sudo bash

生成认证配置文件

1
2
cd /var/lib/zerotier-one/
zerotier-idtool initmoon identity.public > moon.json

执行上述命令后会生成一个moon.json的配置文件

编辑该文件

编辑moon.json, 添加云服务器的公网IP

1
"stableEndpoints": ["180.76.xxx.xxx/9993"]

其中,180.76.xxx.xxx为云服务器的公网ip,9993为zerotier默认端口(注:云服务器安全组中需开放9993端口,否则客户端连接不上moon)

生成签名文件

1
2
3
zerotier-idtool genmoon moon.json
# 执行通过后会给出下面的提示,并生成一个.moon结尾的文件
# wrote 0000006a449297b4.moon (signed world with timestamp 1665386844310)

将moon节点加入网络

在/var/lib/zerotier-one/目录下新建一个moons.d的目录,并将生成的.moon结尾的文件移动到此目录下。

1
2
mkdir moons.d
mv 0000006a449297b4.moon moons.d/

重启中转服务器的zerotier-one

1
systemctl restart zerotier-one

查看是否建立连接

1
zerotier-cli listpeers

如果出现moon节点的IP地址,并且结尾显示MOON,则表示内网服务器客户端已加入moon。