今天r2s的sd卡报废了,换了一张重新刷了最新的系统
系统来源: https://github.com/klever1988/nanopi-openwrt
重新配置完之后,发现一个问题: r2s上可以ping通zerotier网内的其他设备,但是r2s lan网下的设备无法ping通zerotier网下的其他设备。
找了半天发现原因出在iptables上,zerotier启动的iptables脚本使用了iptables指令,而我最新安装的的openwrt,iptables指向了iptables-nft,导致启动指令并没有生效。
所以解决方案就是把 /etc/zerotier.start 中的iptables改为iptables-legacy:
#!/bin/sh
zero_enable="$(uci get zerotier.sample_config.enabled)"
[ "${zero_enable}" -ne "1" ] && exit 0
[ -f "/tmp/zero.log" ] && {
while [ "$(ifconfig | grep 'zt' | awk '{print $1}')" = "" ]
do
sleep 1
done
}
nat_enable="$(uci get zerotier.sample_config.nat)"
zt0="$(ifconfig | grep 'zt' | awk '{print $1}')"
echo "${zt0}" > "/tmp/zt.nif"
[ "${nat_enable}" -eq "1" ] && {
for i in ${zt0}
do
ip_segment=""
iptables-legacy -I FORWARD -i "$i" -j ACCEPT
iptables-legacy -I FORWARD -o "$i" -j ACCEPT
iptables-legacy -t nat -I POSTROUTING -o "$i" -j MASQUERADE
ip_segment="$(ip route | grep "dev $i proto kernel" | awk '{print $1}')"
iptables-legacy -t nat -I POSTROUTING -s "${ip_segment}" -j MASQUERADE
done
}