当我执行这个IPTables命令: iptables -A INPUT -p tcp -m tcp --dport 9080 -s localhost -d localhost -j ACCEPT
iptables -L显示:
ACCEPT tcp -- localhost localhost tcp dpt:9080 ACCEPT tcp -- localhost localhost tcp dpt:9080 ACCEPT tcp -- localhost localhost tcp dpt:9080 ACCEPT tcp -- localhost localhost tcp dpt:9080
为什么四次? 我的意思是,它做我想要的,但为什么它需要显示四次?
编辑:在我身边input的重复这个(多次)的所有命令是:
iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -d 192.99.169.167/32 -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -s localhost -d本地主机-p tcp -m tcp -dport 9080 -j ACCEPT
iptables -A INPUT -s localhost -d localhost -p tcp -m tcp –dport 9081 -j ACCEPT
iptables -A INPUT -j DROP iptables -P INPUT DROP
它不应该,除非有一个错误。 然而, iptables -A并不是幂等的,如果你多次运行它(或者对现有或加载的configuration运行冗余的iptables -A命令),它将再次添加规则,而不pipe它是否与scheme的完全相同规则。
另一件可能发生的事情是,解决scheme为localhost名称提供了多个结果。 这是非常罕见的,因为最佳做法是禁止在iptables命令中使用名称。 你可以检查你的/etc/hosts文件来确定这个,或者你可以使用iptables -nL来显示IP地址。 在这种情况下,是的,它确实需要为您的请求添加多个规则(因为在这个特殊情况下,它会在插入时parsing和扩展名称),而且您应该明确指定127.0.0.1如果这是您想要的。