我一直尝试不同的方法来打开端口,但不知为何都没有成功。
我使用的最后一组代码如下:
iptables -I OUTPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
我究竟做错了什么?
我的服务器上安装了 plesk,因此它应该能帮我处理 DNS。我访问了 Plesk 中的组件页面,可以看到 BIND 支持已打开。但是,由于某种原因,在我服务器上出现内存问题后,DNS 停止运行。所以我给服务器提供商打了电话,他们只告诉我端口 53 被阻止了,我必须解除阻止,所以我不得不禁用 iptables。然而,由于某种原因,在另一次重新启动后,DNS 恢复运行,端口 53 处于打开状态。
答案1
假设您正在运行 dns 服务器(毕竟这是 serverfault,并且“打开端口”表明您正在尝试这样做),那么您的 dport 和 sport 的方向就错了。您需要在 INPUT 链上使用 --dport 53。
在这种情况下,您的连接状态跟踪也存在错误。如果您只允许输入 ESTABLISHED,那么其他人如何能够访问您的 DNS 服务器?
最后,如果你没有运行 DNS 服务器,而是试图允许自己使用DNS 服务器,这些规则完全错误:-)