今天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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#!/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 } |