“sudo iptables -L”需要很长时间才能加载

“sudo iptables -L”需要很长时间才能加载

由于某种原因,当我尝试运行时,sudo iptables -L加载时间非常长。我正在从脚本加载规则,它位于具有 2MB 专用 RAM 的 VMWare Fusion 上的 Ubuntu 服务器虚拟机上。当我尝试运行脚本时,我偶尔也会收到其他错误,例如“另一个应用程序当前持有 xtables 锁。也许您想使用 -w 选项?”。sudo iptables -L此错误往往会在服务器重新启动时消失,但有时当我回来时我的脚本已损坏。在对代码进行某些修改后,我还没有收到此错误。

我只能发布脚本的部分代码,因为这是家庭作业,但解决这个问题不是作业的一部分。

#flushing all the rules
iptables --flush
iptables -X

iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT
iptables --policy FORWARD DROP

iptables -A INPUT -i lo -j LOG --log-prefix "LOOPBACK IN : "
iptables -A OUTPUT -o lo -j LOG --log-prefix "LOOPBACK OUT: "
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j LOG --log-prefix "Established-IN"
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j LOG --log-prefix "Established-OUT"

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


...specific port acceptance per IP address, no NEW states (not sure if relevant)...

iptables -A INPUT -s $LOCAL_NETWORK -d $SERVER_IP -j LOG --log-prefix "Unauthorized local    connection: "

iptables -A INPUT -s $LOCAL_NETWORK -d $SERVER_IP -j REJECT

答案1

iptables -L默认情况下将尝试将 IP 地址解析为主机名。

我在这个系统上设置了一个小型 iptables 规则集,但是由于规则的原因,即使是这么小的列表也需要一段时间才能完成。

通过使用iptables -L -n,它会以数字形式显示所有内容,并跳过 IP 解析和端口服务通用名称显示。它还应该显示得更快。(该-n选项告诉它显示所有内容的数字条目,并且不会尝试解析 IP。缺点是,端口也将以数字形式显示,而不是例如端口 80 的 http。)

相关内容