当我更改 INPUT 的默认策略时,iptables -L 的输出在第三行后停止。我通过 ssh 和本地检查了它。我的终端的输出(是的,我知道我不应该使用 root)。
root@pi4:/# iptables -L -v
Chain INPUT (policy ACCEPT 73 packets, 16085 bytes)
pkts bytes target prot opt in out source destination
261 18964 ACCEPT tcp -- any any 192.168.0.0/16 anywhere tcp dpt:60022
94 7786 ACCEPT all -- lo any anywhere anywhere
0 0 ACCEPT tcp -- any any 192.168.0.0/16 anywhere tcp dpt:netbios-ssn
0 0 ACCEPT tcp -- any any 192.168.0.0/16 anywhere tcp dpt:microsoft-ds
0 0 ACCEPT udp -- any any 192.168.0.0/16 anywhere udp dpt:netbios-ns
4 962 ACCEPT udp -- any any 192.168.0.0/16 anywhere udp dpt:netbios-dgm
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
root@pi4:/# iptables -P INPUT DROP
root@pi4:/# iptables -L -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
^C
root@pi4:/#
答案1
DNS 查找速度变慢。由于新规则集现在阻止接收 DNS 回复,因此对于每行,在达到超时之前都会有一段时间。
您应该始终使用-n
参数以避免 DNS 查找。实际上,-v
也应该用来理解它的输出。坦率地说,iptables -L
几乎不应该使用它,尤其是在 stackexchange 上,因为它使得很难重现问题中所询问的内容。唯一有用的情况是当特定匹配或目标在其输出上显示附加状态信息时。
您应该更喜欢其中之一:
iptables -S
对于单个表或链(如果提供)iptables-save -c
对于带有数据包计数的整个规则集(这有助于确定规则是否不匹配)
无论如何,您应该添加一条有状态规则以允许接收回复流量,包括 DNS 回复:
iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT