Openwrt获取客户端实时流量脚本修改, 改成以下的。
#!/bin/sh echo "Collecting data..." echo "<br>" cat /proc/net/arp | grep : | grep ^192 | grep -v 00:00:00:00:00:00 | awk '{print $1}' > mac-ip iptables -N UPLOAD iptables -N DOWNLOAD while read line;do iptables -I FORWARD 1 -s $line -j UPLOAD;done < mac-ip sleep 1 while read line;do iptables -I FORWARD 1 -d $line -j DOWNLOAD;done < mac-ip sleep 1 echo "Download speed:" echo "<br>" iptables -nvx -L FORWARD | grep DOWNLOAD | awk '{print $2/1024/1" KB/s ",$1/10" packets/s", $9}' | sort -n -r|grep -v '0 packets/s' echo "<br>" echo "Upload speed:" echo "<br>" iptables -nvx -L FORWARD | grep UPLOAD | awk '{print $2/1024/1" KB/s ",$1/10" packets/s", $8}' | sort -n -r|grep -v '0 packets/s' while read line;do iptables -D FORWARD -s $line -j UPLOAD;done < mac-ip echo "<br>" sleep 1 while read line;do iptables -D FORWARD -d $line -j DOWNLOAD;done < mac-ip iptables -X UPLOAD iptables -X DOWNLOAD
加了两句sleep 1 , 和过滤 grep -v ‘0 packets/s’ 零数据包的, 但如果脚本中断,还会残留iptable的规则的,
需再执行: while read line;do iptables -D FORWARD -d $line -j DOWNLOAD;done < mac-ip
有时间还要再改进一下,加上判断,改善那个残留规则的问题。
您好,请问iptables规则残留问题解决了吗?