今天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
}