使用 ZeroTier 组网

使用 ZeroTier 组网

. 3 min read

使用到的设备:

1台腾讯云(有公网IP) , MacBook(联通宽带) , MacBook工作机器(公司网络) ,联想笔记本电脑(移动宽带)

使用 ztncui 搭建服务端, 服务端搭建在 腾讯云 上,具体过程略过。可以参考这个项目

GitHub - key-networks/ztncui: ZeroTier network controller UI
ZeroTier network controller UI. Contribute to key-networks/ztncui development by creating an account on GitHub.

在节点都已经连接成功后,需要配置两个部分。

一、将指定的访问转发到具体的节点。

比如:192.168.5.0/24 是我 MacBook(联通宽带) 的局域网。

这样配置后,所有节点的 ZeroTierOne 客户端可以看到一个

这时候其实只好了第一步

❯ traceroute 192.168.5.1
traceroute to 192.168.5.1 (192.168.5.1), 64 hops max, 52 byte packets
 1  10.226.116.193 (10.226.116.193)  207.616 ms  27.482 ms  18.715 ms
 2  * * *
 3  * * *

第二步,在节点机器上配置 NAT 转发。

这里我是 Mac 所以一下是基于 Mac 环境。

开启 NAT 转发

sudo sysctl -w net.inet.ip.forwarding=1

配置 NAT 规则

修改 /etc/pf.conf 文件,添加 zt-nat 信息。没有的话新建文件

scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
nat-anchor "zt-nat"   # 这里为新加
rdr-anchor "com.apple/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "zt-nat" from "/etc/pf.anchors/zt-nat" # 这里为新加
load anchor "com.apple" from "/etc/pf.anchors/com.apple"

添加 /etc/pf.anchors/zt-nat (不用直接使用,使用自己的网络接口替换)

nat on en0 from feth4101:network to any -> en0

en0 为局域网的 网络接口

feth4101 为 zerotier 的网络接口

具体参考自己的环境,ifconfig 后。有局域网IP的就是局域网的网络接口。同理也可以找到 zerotier 的网络接口。

重启 pfctl

sudo pfctl -evf /etc/pf.conf

测试

MacBook工作机器测试

❯ traceroute 192.168.5.1
traceroute to 192.168.5.1 (192.168.5.1), 64 hops max, 52 byte packets
 1  10.226.116.193 (10.226.116.193)  18.979 ms  19.628 ms  21.663 ms
 2  192.168.5.1 (192.168.5.1)  20.814 ms  20.298 ms  21.693 ms

成功!!

Windows 的待续