Search K
Appearance
Appearance
INFO
与 Tailscale 类似,ZeroTier 可以将不同网络环境的设备组成一个虚拟局域网,使其可以互相访问
打开 ZeroTier 官网,点击右上角的 Login,可以直接选择 Google 或者 Microsoft 授权登录
根据提示下载对应平台的 客户端
curl -s https://install.zerotier.com | sudo bashdpkg -P zerotier-one rm -rf /var/lib/zerotier-one/登录成功后,点击最上方的 Create A Network 创建一个网络
创建成功,进入该网络的设置,将 Access Control 设置为 Private,name 可以随意填写,同时记下 Network ID

下面来到网段的设置,没有特殊需求的话,在下方任意选择一个即可

如果需要自定义的话则需要点击 Advanced 后,将其中自带的网段进行删除,然后在上方填写想要的网段,下方填写地址池 (类似 DHCP 地址池)

有图形化界面的平台,直接填入刚刚记下的 Network ID 即可;而在无图形化界面的平台上,需要输入 zerotier-cli join <Network ID>
返回到 ZeroTier 控制面板,在下方设备列表中,勾选加入网络的设备;同时记下设备的 IP

完成以上步骤后,启动客户端,即使用列表中的 IP 进行直接访问
有些时候,我们不单单希望加入 Tailscale 的设备可以相互访问,而是需要访问设备所在的整个局域网,对此我们还需要更多的配置。
编辑 /etc/sysctl.conf 文件
vi /etc/sysctl.conf将以下代码取消注释
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1加载内核参数
sysctl -p例如我的路由器地址为 10.0.0.1,光猫地址为 192.168.1.1,则需要配置的网段为 10.0.0.0/24 与 192.168.1.0/24
在 ZeroTier 控制面板中,Destination 填写网段,Via 填写内网跳板机的 IP 地址

输入 ifconfig ,记录下物理网卡名字以及 ZeroTier 网卡名字
将网卡名字导出为环境变量
PHY_IFACE=连接内网的网卡的名字
ZT_IFACE=zerotier 的虚拟网卡名字更新路由表
sudo iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE
sudo iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT
sudo iptables-save持久化路由表
sudo mkdir -p /etc/sysconfig/
sudo sh -c "iptables-save > /etc/sysconfig/iptables"在 /etc/rc.local 文件的末尾添加一行
/sbin/iptables-restore < /etc/sysconfig/iptables经过以上设置,即可在连接 ZeroTier 后,直接使用局域网 IP 对整个局域网的设备进行访问