通过端口限制传出连接以控制 nf_conntrack 的使用

通过端口限制传出连接以控制 nf_conntrack 的使用

我想让我的系统更能应对某些故障。当系统使快速出站 TCP 连接失败时,表中nf_conntrack会填满TIME_WAIT条目。这会导致系统上的其他操作失败,因为没有更多nf_conntrack可用条目。

我知道可以修改某些参数,例如 tcp_tw_reuse,& tcp_fin_timeout,但不愿意在那里做出大的改变(基于警告像这样

在进行上述任何更改和应用程序更改之前,我希望通过nf_conntrack 限制每个子系统的传出连接(通过使用端口号、IP 地址等)来加强我的系统以防止条目完全耗尽。我想我可以添加以下规则:

-A OUTPUT -p tcp --syn --dport 9702 -m connlimit --connlimit-above 3 -j REJECT --reject-with tcp-reset

但这似乎只会影响活动连接(这是可以理解的,因为这些连接实际上已经消失了)。有没有办法能够限制每个端口/应用程序的传出连接,同时将TIME_WAIT套接字考虑在内?

谢谢

答案1

如果您实际上不需要 NetFilter 连接跟踪,我建议您完全禁用 nf_conntrack(通过卸载它),或者在 iptables 规则集的顶部添加 NOTRACK 规则。

相关内容