我从一个空的 iptables 结构开始,所有表和链都是具有ACCEPT
默认策略的默认表和链。重现步骤:
iptables -I INPUT -s 192.168.0.1/24 -j ACCEPT
iptables -L
此时我得到以下输出(其他链保持不变,因此我跳过它们):
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.168.192.in-addr.arpa/24 anywhere
输出结果没有任何错误。然后我添加了一条 DROP 规则:
iptables -I INPUT 2 -j DROP
iptables -L
输出
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.0.0/24 anywhere
DROP all -- anywhere anywhere
这一秒iptables -L
使得输出打印的前两个标题行和规则本身之间存在很大的延迟(25-30 秒)。
问题:为什么添加 DROP 规则会导致-L
命令运行时中间有延迟?(是的,我知道它会尝试进行反向 DNS 查找,但为什么在添加 DROP 规则后而不是在添加规则后-s 192.168.0.1/24 -j ACCEPT
?)
为什么源的输出不同? 0.0.168.192.in-addr.arpa/24
在添加 DROP 之前和192.168.0.0/24
之后。
是的,我找到并读过iptables -L 相当慢。这是正常的吗?。使用-n
使得输出打印无延迟。
答案1
-n
在您的 中添加一个iptables -L
。这将加快您的命令。然后查看您的 DNS 解析器设置。我敢打赌,您指向的是192.168.0.0/24
正在接受的网络外部的 DNS 服务器。