提升抗ddos能力需系统级配置:关闭危险默认项(如源路由、icmp重定向)、优化tcp握手队列(syncookies+max_syn_backlog)、加速time_wait释放(tw_reuse+fin_timeout)、合理限制资源防反噬,并执行sysctl -p验证生效。

直接改 /proc/sys/net/ 下的参数只是临时生效,真正要提升抗 DDoS 能力,得靠系统级配置 + 合理取值 + 实时验证。关键不是堆数字,而是让内核在网络压力下不卡、不丢、不瘫。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
关掉危险默认项,切断攻击入口
Linux 默认开启一些对服务器毫无必要、反而容易被利用的功能。这些必须关:
-
net.ipv4.conf.all.accept_source_route = 0:拒绝源路由包,防路径劫持 -
net.ipv4.conf.all.accept_redirects = 0和net.ipv6.conf.all.accept_redirects = 0:禁用 ICMP 重定向,避免网关欺骗 -
net.ipv4.conf.all.send_redirects = 0:本机不发重定向,防止被当反射源 -
net.ipv4.ip_forward = 0:非路由器场景必须关闭 IP 转发,杜绝中间人滥用
撑住 TCP 握手链路,不让 SYN Flood 直接压垮队列
SYN Flood 攻击打的是半连接队列,但很多人只开 tcp_syncookies=1,却忽略队列本身太小——包根本进不去,Cookies 就没机会触发。
-
net.ipv4.tcp_syncookies = 1:保命机制,必须开(别设为2,会掩盖真实压力) -
net.ipv4.tcp_max_syn_backlog = 65535:半连接队列拉满,确保攻击包能排队等待处理 -
net.core.somaxconn = 65535:全连接队列同步拉满,避免应用层accept()阻塞 -
net.ipv4.tcp_synack_retries = 3:把默认 5 次重试减到 3 次,加快丢弃伪造连接
加快异常连接释放,避免 TIME_WAIT 占满端口
高并发短连接服务最怕端口耗尽,重点不是“回收”,而是“复用”和“速放”:
-
net.ipv4.tcp_tw_reuse = 1:允许 TIME_WAIT 套接字用于主动发起的 outbound 连接(如调第三方 API),安全且有效 -
net.ipv4.tcp_fin_timeout = 15或20:缩短 FIN_WAIT_2 超时,比tcp_tw_recycle更稳妥(该参数已移除,旧版启用会导致 NAT 环境连接失败) -
net.ipv4.ip_local_port_range = "1024 65535":扩大可用端口范围,最小值不低于 1024,避开常用服务端口
控资源、限扫描、防反射,避免参数反成攻击杠杆
盲目调大缓冲区或连接数,可能触发 OOM Killer 杀进程:
-
net.ipv4.tcp_rmem和net.ipv4.tcp_wmem的max值不超过物理内存的 10% -
net.netfilter.nf_conntrack_max根据内存设置(例如 16GB 内存可设为 262144),并配合iptables -A INPUT -m connlimit --connlimit-above 100 -j DROP限单 IP 连接数 -
net.ipv4.icmp_ratelimit = 100:不限 ping,但限速,兼顾运维与防护 -
net.ipv4.conf.all.rp_filter = 1:启用反向路径过滤(要求路由对称,云服务器通常适用)
改完 /etc/sysctl.conf 后,务必执行 sysctl -p 加载,否则全是文本。验证是否生效:sysctl net.ipv4.tcp_max_syn_backlog net.core.somaxconn,再看 /proc/net/sockstat 中 tw 数量是否明显回落。不复杂但容易忽略。










