0

0

conntrack 表满导致新连接失败但 ss -s 显示正常连接数的排查路径

冰川箭仙

冰川箭仙

发布时间:2026-01-30 21:12:08

|

413人浏览过

|

来源于php中文网

原创

conntrack表满导致新SYN包被丢弃,而ss -s仅显示socket层连接状态,故二者数值不一致;需通过conntrack -S的insert_failed、/proc/net/nf_conntrack条目数及日志“table full”确认溢出。

conntrack 表满导致新连接失败但 ss -s 显示正常连接数的排查路径

conntrack 表满但 ss -s 显示连接数正常?这是两个维度的问题

没错,ss -s 统计的是当前 socket 层的连接状态(ESTAB、TIME-WAIT 等),而 conntrack 表满影响的是 netfilter 的连接跟踪状态——新 TCP 三次握手 SYN 包进不来,根本到不了 socket 层。所以你会看到 ss -s 里 ESTAB 数量稳定甚至下降,但客户端连不上、超时重传、SYN timeout 错误频发。

确认 conntrack 表是否真的溢出

别只看 sysctl net.netfilter.nf_conntrack_count,它只是当前 tracked 连接数,不等于是否丢包。关键要看内核是否开始 drop:

  • 执行 cat /proc/net/nf_conntrack | wc -lsysctl net.netfilter.nf_conntrack_max 对比,接近或等于即为满
  • 检查丢包:grep "nf_conntrack: table full" /var/log/messagesdmesg -T | grep "table full"
  • 更直接:conntrack -S 输出中关注 insert_failed 计数器,非零说明已开始丢新连接

为什么 conntrack -L 看不到大量连接,但表却满了?

常见于短连接 + 高频新建场景,比如 HTTP 轮询、健康检查、DNS 查询。这些连接很快关闭,但 conntrack 条目不会立刻释放——默认要等 net.netfilter.nf_conntrack_tcp_timeout_time_wait(通常 120s)甚至更久。你用 conntrack -L 抓快照时可能刚巧没捕获到峰值,但瞬时插入失败已经发生。

Pixso AI
Pixso AI

Pixso AI是一款智能生成设计稿工具,通过AI一键实现文本输入到设计稿生成。

下载
  • watch -n 1 'conntrack -S' 观察 entriesinsert_failed 实时变化
  • conntrack -L | awk '{print $4}' | sort | uniq -c | sort -nr | head 查看哪些源 IP/端口占最多条目(常暴露扫描或 misbehaving client)
  • 注意:启用 net.netfilter.nf_conntrack_tcp_be_liberal=1 可缓解乱序/重传导致的假连接残留,但不解决根本容量问题

调优与规避的关键参数和限制

单纯加大 nf_conntrack_max 不是万能解,它吃内存(每个条目约 376 字节),且在高并发下锁竞争明显。优先做减法:

  • 对明确不需要跟踪的流量 bypass conntrack:iptables -t raw -A PREROUTING -p tcp --dport 8080 -j NOTRACK(适用于直通代理、L4 LB 后端
  • 缩短超时时间:sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30(需同步确认应用无 TIME-WAIT 相关异常)
  • 避免在容器环境重复跟踪:Docker 默认启用 conntrack;Kubernetes 中若用 kube-proxy iptables 模式,又叠加 host 上的 conntrack,容易 double-track
  • 注意:修改 nf_conntrack_max 后,nf_conntrack_buckets(哈希桶数)建议设为 max 的 1/4 ~ 1/2,否则哈希冲突加剧性能下降

真正难处理的是“连接未完成就堆积”的情况——比如 SYN flood、后端响应慢导致连接卡在 SYN_RECV 状态过久,这种 conntrack 条目会一直占着直到超时,比正常 ESTAB 更耗资源,也最难从日志里直接定位。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

186

2023.09.27

sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

395

2023.09.04

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

113

2025.08.29

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

102

2025.10.23

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

397

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

257

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

500

2024.04.08

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会docker容器
光速学会docker容器

共33课时 | 1.9万人学习

Docker 17 中文开发手册
Docker 17 中文开发手册

共0课时 | 0人学习

极客学院Docker视频教程
极客学院Docker视频教程

共33课时 | 17.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号