现在问题是两台不同地区的电脑 a和b ,两台电脑都装了zerotier 并且都能互相访问了,但是a无法访问b局域网内其他电脑,我该如何配置?

新版本的zerotier 配置变了
进入跳板机的配置 也就是b电脑对应ip的那台 高级设置 打开允许桥接。
image.png

步骤一、在b电脑配置开启转发和配置转发规则。

我的电脑是ubantu为例。其它设备比如windows或者openwrt 同理

编辑配置文件

1.开启系统级IP转发
sudo vim /etc/sysctl.conf

# 取消注释或添加以下行
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

# 使配置生效
sudo sysctl -p
2.配置防火墙/路由规则
# 获取网卡名称
ip addr show

# 记录:物理网卡(如 eth0) 和 ZeroTier虚拟网卡(如 ztabcdef12)
 
# 配置iptables转发规则,其中$PHYSICAL_IFACE 和 $ZEROTIER_IFACE 换成你本地网卡的名称 如物理网卡(如 eth0) 和 ZeroTier虚拟网卡(如 ztabcdef12)
sudo iptables -t nat -A POSTROUTING -o $PHYSICAL_IFACE -j MASQUERADE
sudo iptables -A FORWARD -i $PHYSICAL_IFACE -o $ZEROTIER_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $ZEROTIER_IFACE -o $PHYSICAL_IFACE -j ACCEPT


# 安装持久化工具
sudo apt update && sudo apt install -y iptables-persistent

# 保存当前规则
sudo netfilter-persistent save

# 验证保存的文件
sudo cat /etc/iptables/rules.v4 | grep -E "MASQUERADE|FORWARD"

步骤二、a电脑也要配置路由表,

我发现老版本的管理中心能够自动拉取服务端配置的路由表。但是现版本没有在服务端配置路由表的地方,所以目前只能手动添加。

1.首先打开 ZeroTier 客户端 → 右键你的网络 → 勾选 ✅ Allow Managed
2.添加路由表,windows为例
#添加永久路由表
route -p add 192.168.100.0 mask 255.255.255.0 192.168.191.16

搞定,这样a就往访问b的局域网里面的其它机器了。

Q.E.D.


生命在于折腾