iptables 导致连接停滞

iptables 导致连接停滞

我们的许多 http 服务器都存在连接停滞问题。作为测试,我创建了一个脚本,使用 curl 连接到 Web 服务器并尝试下载一个大约 3mb 大小的 txt 文件。

时不时地,速度就会降到 0,并且连接就会挂起。

当我禁用 iptables 时问题解决并且一切正常运行。

 iptables -vL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
   28  2080 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:http
   17  1924 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 15 packets, 1564 bytes)
 pkts bytes target     prot opt in     out     source               destination

中间有几个路由器和防火墙。

知道这可能导致什么吗?

嗯。我用的是 Centos 6.3 Kernel 2.6.32-279.19.1.el6.x86_64 Iptables 版本是:iptables-1.4.7-5.1.el6_2.x86_64

留言

IPTables-Dropped: IN=eth1 OUT= MAC=00:50:56:a6:00:9e:00:16:9c:ff:20:00:08:00 SRC=xxx DST=xxx LEN=80 TOS=0x00 PREC=0x00 TTL=62 ID=55755 DF PROTO=TCP SPT=34787 DPT=80 WINDOW=1539 RES=0x00 ACK URGP=0

答案1

最有可能的是,你快用完了连接跟踪条目。提高net.nf_conntrack_max。如果这是由于攻击造成的,你可能需要将其提高很多并降低一些设置,例如net.netfilter.nf_conntrack_tcp_timeout_syn_recv

您可以重写规则而不使用连接跟踪 - 您似乎不需要它。但这可能会降低您将来的灵活性。

相关内容