在将 drop all 规则添加到 IPtables 后,我的 SSH 终端需要很长时间才能加载,经常会响应错误sudo: unable to resolve host foo.bar.domain: Connection timed out
,但在呈现错误消息后,通常会立即响应我请求的提示。我对服务器的 ping 是一致的。我在端口 2222 上运行 SSH。
IP表:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p tcp -m tcp --dport 2222 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -j DROP
答案1
我没有足够的声誉来评论Brandon 自己的回答,因此这里给出答案:
最有可能的是
-A INPUT -i lo -j ACCEPT
这已经帮你解决了。如果你使用的是现代 Ubuntu 版本,它会使用 systemd-resolved 来监听 127.0.0.53:53 - 当你执行 DNS 查找时,请求会通过环回接口 (lo) 发送到 systemd-resolved。
答案2
按照以下方法重新配置我的 IPTables 解决了这个问题。(建议来自本指南。
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -p tcp -m tcp --dport 2222 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT