|
你接口或者网段都不用指定的!
#!/bin/sh
. $IPKG_INSTROOT/lib/functions.sh
(printf "$INTERFACE" | grep -q zt) || exit 0
main() {
INTERFACE=$@ ; while [ "$status" != "1" ] ; do sleep 1
[ "$(uci -q get zerotier.sample_config.enabled)" == "1" ] || exit 0
for data in $(zerotier-cli listnetworks|grep $INTERFACE) ; do
id=$(printf "$data" | awk -F '' '{a+=NF}END{print a}')
[ "$id" == "16" ] && [ "$(zerotier-cli get $data status)" == "OK" ]\
&& status=1 ; done ; done ; echo "$(date +%s) $INTERFACE" >>/var/zerotier.leases ; }
[ "$ACTION" == "remove" ] && {
sed -i "/$INTERFACE/d" /var/zerotier.leases
uci -q batch <<-EOF >/dev/null
del network.$INTERFACE
commit network
delete firewall.$INTERFACE
del $(uci -q show firewall | sed -n -e "/\.src='$INTERFACE'$/s///p" | sed -n -e "1p")
commit firewall
EOF
ifup $INTERFACE && fw3 -q reload ; }
[ "$ACTION" == "add" ] || exit 0
[ -d "/sys/class/net/$INTERFACE" ] && {
main $INTERFACE& >/dev/null
uci -q batch <<-EOF >/dev/null
set network.$INTERFACE=interface
set network.$INTERFACE.ifname=$INTERFACE
commit network
add firewall zone
rename firewall.@zone[-1]=$INTERFACE
set firewall.@zone[-1].network=$INTERFACE
set firewall.@zone[-1].input=ACCEPT
set firewall.@zone[-1].output=ACCEPT
set firewall.@zone[-1].forward=ACCEPT
set firewall.@zone[-1].name=$INTERFACE
#add firewall forwarding
#set firewall.@forwarding[-1].src=$INTERFACE
#set firewall.@forwarding[-1].dest=lan
commit firewall
EOF
ifup $INTERFACE ; }
|

|