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
コマンド-
を置き換えたり、grep結果を無効にしたりできます。
答え2
157.60.1.0/24 は -d 157.60.1.0/24 -j Accept などの他の条件にあります。エラーに示されているように、最初の条件--dst-rangeには適合しません。したがって、コマンドはecho $ ip l grep -q "-"です。