当vps启用的ufw或nftables服务器时大量持续tcping会导致中断几分钟后才会恢复,如使用itdog的tcping全选持续测试。
核心作用是大幅提升 Linux 内核网络连接跟踪表(Connection Tracking Table)的容量上限与检索效率,从而防止在高并发连接(如大量 tcping或CC攻击)时,因连接跟踪表爆满而导致的系统主动丢包。
1、sysctl.conf中加入以下两条,具体值可以直接用也可以根据vps情况计算
net.netfilter.nf_conntrack_max = 1048576
net.netfilter.nf_conntrack_buckets = 262144
net.netfilter.nf_conntrack_tcp_timeout_established = 600
debian12及以前版本可在/etc/sysctl.conf中加入,debian13在/etc/sysctl.d/新建一个xxx.conf中加入;也可在你自己的调优文件中加入。
2、使其生效(也可重启系统)
debian12及以前版本
sysctl -p
debian13
sysctl --system
3、若重启后不生效可在/etc/modules中加入一行以下内容
nf_conntrack
发贴的目的一是水贴二是给有这个需求的人,毕竟我当初也被这个问题困扰过。
等以后有空了发一个ufw或nftables允许特定ip段访问特定端口的方法吧
如只允许CN IP或只允许三网IP并排除教育科研网、IDC、云服务商、公司机构IP等;
不过几千上万条IP段不适合ufw,ufw不支持规则集,只能自动逐条添加,根据CPU性能会耗时几十分钟到几个小时,有些vps商会直接中断,如ZGO;
nftables支持规则集,除下载计算整合IP地址段外基本秒完成。
conntrack表撑大确实能救急,不过光调max不改nf_conntrack_tcp_timeout_established(默认432000秒)的话,表还是会被一堆半死不活的连接慢慢填满,建议一起降到600左右。另外先看dmesg里有没有nf_conntrack: table full再动手,不然小内存机器白白吃掉几百M。
学习了
学习学习
收藏学习
这条我补充上
学到了