我尝试按照以下规则打开我的 DNS 端口:
iptables -A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT
service iptables save
service iptables restart
但它不起作用,然后我尝试从以下位置打开 DNS:
system-config-firewall-tui
并且它有效。
iptables 和防火墙有什么关系?
答案1
这system-config-firewall
只是 iptables 的一个前端,而 iptables 是 netfilter 的前端,是 Linux 内核中的防火墙。无论如何,你打开 DNS 的规则是错误的,应该是:
iptables -I 输入 -p udp -m 状态 --状态新 --dport 53 -j 接受 iptables -I 输入 -p tcp -m 状态 --状态新 --dport 53 -j 接受
您必须使用-I
选项,这意味着在链的开头插入。如果附加规则之前的最后一条规则规定丢弃所有流量,那么您的新规则将永远不会被调用。
答案2
您可以通过运行以下查询来检查您执行的命令是否有效。
iptables -L