ZeroTierOne创建大局域网
本文最后更新于:2024年9月16日 下午
ZeroTier原理
这个过程如下:
A 想要将数据包发送到 B,但由于它没有直接路径,因此将其向上发送到 R。
如果 R 有直接链接到 B,它会转发数据包给 B。否则它会继续向上游发送数据包,直到达到行星根(planet)。行星根知道所有节点,所以如果 B 在线,最终数据包将到达 B。
R 还向 A 发送一个名为会和的消息,包含有关它如何到达 B 的提示。同时,将会和发给 B,通知 B 它如何到达 A。
A 和 B 获取它们的会合消息并尝试相互发送测试消息,可能会对 NAT 或状态防火墙进行穿透。如果这样可以建立直接链路,则不再需要中继。
如果无法建立直接路径,则通信可以继续中继(速度慢)
ZeroTier 官方搭建了一个行星根服务器叫做地球 Earth,行星根服务器唯一的且是免费的,它记录了所有的路径信息,一般情况下大家都直接用的这个。除此之外还有 12 个遍布全球的根服务器,这些是收费的服务。所以如果使用免费套餐,连接时的延迟可能会很高,另外由于 Earth 在国外,一些不确定因素可能会影响到使用。考虑到网络的不确定性,ZeroTier 能自己创建根服务器月球 Moons,这样就能在大局域网中得到更好的体验了。
安装
ZeroTier 是跨平台的,能安装在几乎任何平台
Windows、macOS、Linux、iOS、Android、QNAP、Synology、西数 MyCloud NAS,下载地址:https://www.zerotier.com/download.shtml
在linux安装
一键安装
1 |
|
加入网络
1 |
|
在路由器安装
路由器推荐安装 Entware 后使用 opkg install zerotier
命令安装, vi /etc/config/zerotier
,找到以下两处进行修改:
config zerotier sample\_config option enabled 0
(这里把0替换成1,让选项生效) list join ‘8056c2e21c000001’
(替换为自己的网络ID),然后重启路由器
路由器防火墙配置(关键)
在防火墙->自定义规则页面,增加下面三条记录: 1
2
3iptables -I FORWARD -i ztc3qwyx5l -j ACCEPT
iptables -I FORWARD -o ztc3qwyx5l -j ACCEPT
iptables -t nat -I POSTROUTING -o ztc3qwyx5l -j MASQUERADE ztc3qwyx5l
是路由器的ZeroTier虚拟接口的名称,在终端可以使用ifconfig命令查看,请自行替换。
设置完成后,点击重启防火墙。
实测命令:
1 |
|
然后就发现通过学校可以访问家里的192.168.50.0/24网段了
在vps配置moon服务节点(可选操作)
安装 moon
1 |
|
生成moon配置文件
1 |
|
修改配置文件moon.json
1 |
|
该配置里面,有一个id字段,10个字符,如: ["id": "18fasd2319"], 就是moon的id, 在客户端连接时,需要用到它.
生成moon文件
1 |
|
执行该命令后,会在在/var/lib/zerotier-one目录下生成一个类似00000018fasd2319.moon的文件..这个文件非常重要,所有的客户端要连接上moon都是依靠该文件关联的..
使moon配置文件生效
在/var/lib/zerotier-one目录下,新建一个 moons.d 文件夹,并将刚生成的moon配置文件放到该文件夹下
1 |
|
重新启动moon服务器
1 |
|
客户端连接并使用服务器上的Moon
linux
直接在zerotier目录下,创建moons.d文件夹,并且将生成的00000018fasd2319.moon文件拷入,并重启服务即可.
Windows 10
打开C:\ProgramData\ZeroTier\One
文件夹,并且在其下建立moons.d
文件夹,然后将moon服务器下生成的000xxxx.moon文件,拷贝到此文件夹内..再重启该服务即可..
验证moon是否生效
必须是管理员权限运行cmd 在开始上点右键,选择windows powershell 管理员,打开窗口后再运行命令即可
1 |
|
若有类似地址,即可证明moon连接成功
200 listpeers 18fasd2319 23.23.23.23/9994;4242;4038 224 1.2.12 MOON
验证时看不到本机
其他方案
frps,nps,tinc,smartgate
使用效果记录
经过一周的试用,发现用国外的vps建立的moons节点连接速度非常慢,效果并不理想,还不如不建立moon,直接用官方的就行了。下一步打算使用一下tinc
参考教程
padavan安装zerotier: https://www.right.com.cn/forum/thread-367080-1-1.html