我需要设置 IPtables 来接受许多内部 IP 上的流量。是否有可用于部分 IP 地址的通配符?例如:192.168。。
或者有更好的选择吗?
答案1
iptables 不认识通配符,但使用了 CIDR 方法。Fe: -s 192.168.0.0/24 将覆盖从 192.168.0.1 到 192.168.0.254 的所有主机。
您可以找到有关 CIDR 的更多信息这里
答案2
本身没有通配符,但您可以指定 CIDR 网络掩码:
192.168.0.0/16
以上就是您所给出的示例的 CIDR 等效内容。
答案3
这并不是真正的通配符,您可以通过子网匹配 IP 地址:
192.168.0.0/16 192.168.1.0/24 192.168.2.0/25
另一种方法是使用 ipranges,如下所示:iptables -A INPUT --destination-port 80 -m iprange --src-range From_IP-To_IP -j ACCEPT
还有用于--dest-range的第二个模块。
答案4
对于未来的 Google 用户,截至当前版本的 iptables 1.4.7
单端口 IP 范围
iptables -A INPUT -p tcp --dport 8080 -m iprange --src-range 192.168.0.0-192.168.254.254 -j ACCEPT
多端口 IP 范围
iptables -A INPUT -p tcp -m multiport --dports 21,8080 -m iprange --src-range 192.168.0.0-192.168.254.254 -j ACCEPT