针对高负载服务器如何优化内核网络参数提升抗DDoS能力

雨晨酱_4111

雨晨酱_4111

2026-05-25

597人浏览

原创

高负载服务器防ddos需“疏”“稳”优先:同步设net.core.somaxconn和net.ipv4.tcp_max_syn_backlog为65535,启用tcp_syncookies=1,缩短tcp_synack_retries=3、tcp_fin_timeout=15,禁用tcp_tw_recycle,tcp_tw_reuse=1仅限客户端,缓冲区max值不超物理内存10%,并监控/proc/net/sockstat等实时指标。

针对高负载服务器如何优化内核网络参数提升抗ddos能力

高负载服务器面对DDoS攻击时,内核参数不是调得越大越好,而是要让关键链路不卡顿、资源不被无效连接耗尽、异常状态能快速释放。重点不在“堵”,而在“疏”和“稳”。

先拉齐连接队列容量,避免SYN包还没排队就被丢弃

SYN Cookies 不是前置过滤器,它只在队列真正溢出时才启动。如果 net.core.somaxconn 和 net.ipv4.tcp_max_syn_backlog 还停留在默认的 128 或 1024,攻击流量一来,大量 SYN 包根本进不了队列,直接被内核静默丢弃——这时候开不开 tcp_syncookies 都没意义。

  • 两者必须同步设为 65535:确保应用层 accept 队列和内核半连接队列容量一致,不出现中间环节瓶颈
  • 执行 sysctl -w net.core.somaxconn=65535 和 sysctl -w net.ipv4.tcp_max_syn_backlog=65535
  • 写入配置文件后务必运行 sysctl -p 加载,否则修改只是文本

收紧连接生命周期,加速异常连接释放

攻击常伴随大量半开连接或长时间空闲连接,拖慢系统响应。缩短超时时间能让资源更快回归可用状态。

  • 将 net.ipv4.tcp_synack_retries 设为 3(默认 5),加快放弃异常三次握手
  • 把 net.ipv4.tcp_fin_timeout 调至 30 秒以内(如 15 或 20),减少 TIME-WAIT 占用
  • 启用 net.ipv4.tcp_tw_reuse = 1,仅对主动发起连接的客户端有效(如服务端调用外部 API),不影响监听行为
  • 绝对禁用 net.ipv4.tcp_tw_recycle,该参数已在主流内核中移除,旧版本开启会导致 NAT 环境下连接随机失败

控制资源消耗,防止参数反成攻击入口

盲目放大缓冲区或连接数,可能引发内存耗尽、OOM Killer 杀进程,反而导致服务中断。

  • net.ipv4.tcp_rmem 和 net.ipv4.tcp_wmem 的 max 值不要超过物理内存的 10%
  • 限制连接跟踪表大小:net.netfilter.nf_conntrack_max = 131072(根据内存按需设置),并搭配 iptables 限速规则
  • ICMP 不必完全禁 ping,改用限速:net.ipv4.icmp_ratelimit = 100,兼顾诊断与防护
  • 关闭无用协议功能:net.ipv4.conf.all.accept_redirects = 0、net.ipv4.conf.all.send_redirects = 0

验证与监控不能少,改完不看等于白改

参数生效与否不能靠猜测,得看实时数据和连接状态。

  • 检查当前值:sysctl net.ipv4.tcp_syncookies net.core.somaxconn net.ipv4.tcp_max_syn_backlog
  • 观察半连接数:netstat -s | grep -i "listen\|syn" 或查看 /proc/net/netstat
  • 监控 TIME-WAIT 数量:awk '/^TCP:/ {print $10}' /proc/net/sockstat,持续高于 2 万说明连接模式本身需优化(比如加连接池、关 keepalive)
  • 确认 conntrack 表使用率:cat /proc/sys/net/netfilter/nf_conntrack_count / cat /proc/sys/net/netfilter/nf_conntrack_max
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2472

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

836

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

729

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2216

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4072

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

667

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.2万人学习