Iptables 接受任何格式的任何 IP 或范围

Iptables 接受任何格式的任何 IP 或范围

6 月 30 日更新我有一个 ips.txt 列表,我希望 iptables 接受任何格式的任何 ip 或范围。例子:

# IPs List
199.59.243.120
157.60.1.0/24
91.190.0.0/16
192.168.2.1-192.168.2.25

我的规则:

for ip in $(sed '/#.*/d' ips.txt); do
   if echo $ip | grep -q "-" >/dev/null; then
     iptables -w -A FORWARD -i eth1 -p tcp --dport 80 -m iprange --dst-range "$ip" -j ACCEPT
   else
     iptables -w -A FORWARD -i eth1 -p tcp --dport 80 -d $ip -j ACCEPT
   fi
done

iptables接受ip 199.59.243.120和范围192.168.2.1-192.168.2.25,但是如何让iptables接受范围157.60.1.0/24或91.190.0.0/16???

谢谢

答案1

由于iptables -d接受 CIDR 表示法中的网络,您可能只需更改grep为使用 a 指定的查找范围-,然后交换命令(或否定 grep 的结果)。

答案2

157.60.1.0/24 位于其他条件中,如 -d 157.60.1.0/24 -j Accept。它不适合第一个条件 --dst-range,如错误所述。所以命令是 echo $ ip l grep -q "-"

相关内容