iptables 使服务器连接非常慢

iptables 使服务器连接非常慢

当我向服务器(在本地网络上)添加 iptables 规则时,连接变得非常慢。SSH(登录速度慢得多)和 MySQL(网站使用此服务器作为其 MySQL 数据库服务器,此连接也非常慢)都证实了这一点。奇怪的是,据我所知,没有设置任何限制速度的规则。我只是限制访问。这是规则集:

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:www 
ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:mysql 
ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:22
DROP       all  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  localnet/24          anywhere            ctstate NEW 
ACCEPT     all  --  anywhere             anywhere            ctstate RELATED,ESTABLISHED 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

注意:除了 SSH 和 MySQL,我还限制了对 Apache 的访问,如你所见。这不是速度变慢了,但似乎运行正常。下面给出速度变慢的指示:连接到 SSH 会挂起 10-15 秒后才能继续,而建立 MySQL 会使网页速度变慢约 15-60 秒。

注 2:这些是防火墙中的所有 iptables 规则(FORWARD 规则用于共享互联网)。如果我简单地刷新它,SSH/MySQL 就会立即响应。

答案1

这听起来就像 DNS 查询不成功并且超时了。您可能需要在 INPUT 链中添加 RELATED,ESTABLISHED 规则,以允许 DNS 响应返回到您的 SSH 和 MySQL 服务器。

答案2

我从另一个答案中找到了解决方案添加RELATED,ESTABLISHED规则

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

我遇到同样问题的原因是我将 iptables 策略更改为拒绝所有连接

iptables --policy INPUT DROP 

^^这导致了问题,上面的代码解决了它。

相关内容