当前位置: 首页
系统平台
Linux查看异常连接半开统计的方法

Linux查看异常连接半开统计的方法

热心网友 时间:2026-08-13
转载

使用 ss 快速识别半开连接,关键在于精准过滤连接状态:ss -ton state fin-wait-1、ss -ton state close-wait、ss -tan state syn-recv 都是常用命令;其中 orphaned 非零通常可以直接确认内核级 socket 泄漏,而 CLOS

使用 ss 快速识别半开连接,关键在于精准过滤连接状态:ss -ton state fin-wait-1ss -ton state close-waitss -tan state syn-recv 都是常用命令;其中 orphaned 非零通常可以直接确认内核级 socket 泄漏,而 CLOSE-WAITFIN-WAIT-2 长时间卡住,则多半说明应用没有主动关闭连接。

Linux怎么查看异常连接半开统计

怎么用 ss 快速识别半开连接

半开连接(例如 FIN-WAIT-1CLOSE-WAITSYN-RECV)并不只是“还没彻底断开”这么简单,本质上是连接生命周期停留在中间状态,通常意味着对端出现异常,或者本端在关闭流程中没有处理完整。排查时也不要直接用 ss -t | grep CLOSE 这类模糊匹配,因为状态字段的位置并不固定,很容易漏掉目标连接,甚至产生误判。

  • ss -ton state fin-wait-1:只输出 FIN-WAIT-1 状态,配合 -o 可以查看超时剩余时间,判断是否已经超时但还未回收
  • ss -ton state close-wait:如果 CLOSE-WAIT 大量堆积,说明本端收到 FIN 后没有调用 close(),常见于应用 read() 返回 0 后忘记 shutdown
  • ss -tan state syn-recvSYN-RECV 才是真正的半连接(三次握手未完成),如果持续超过 100,基本可以判断为 SYN Flood,或者 net.core.somaxconn 设置过小

为什么 ss -s 的 orphaned 值非零就是硬泄漏

ss -s 第一行的 orphaned 数值属于内核级指标:进程已经退出,但 socket 仍然挂在内核中没有释放。它与用户态可见的 Total 不重叠,也不受 TIME-WAIT 影响。只要 orphaned > 0,基本就可以确认存在泄漏,这不是配置问题,而是代码缺陷。

  • 常见原因:子进程继承了父进程的 socket fd 却没有显式 close;信号中断导致 cleanup 被跳过;使用了 fork() 但没有在子进程中关闭监听 socket
  • 验证方式:通过 cat /proc/net/sockstat 查看 sockets: usedorphan 行,并对比它们是否随时间持续增长
  • 注意:net.ipv4.tcp_max_orphans 只是保护阈值,设置得过高只会延迟 OOM,不能从根本上解决问题

如何区分半开连接是攻击还是程序 bug

SYN-RECV 升高并不一定就是被攻击,需要结合来源 IP 分布和连接持续时间一起判断:

  • 如果 ss -tan state syn-recv 输出中的源 IP 非常分散(几十到上百个不同 C 段),并且每个连接的存活时间接近 60–120 秒(内核默认 tcp_synack_retries 的超时周期),大概率是 SYN Flood
  • 如果源 IP 集中在一两个内网段,而且连接存在时间很短(<5 秒)却反复出现,更可能是客户端异常断连,再加上服务端没有设置 SO_LINGER 或没有正确处理 read() == 0
  • 使用 ss -tan state syn-recv -i 查看 rtoretrans:如果重传次数大于 3 且 RTO 持续增大,说明网络层丢包比较严重,不是单纯的协议栈问题

排查时最容易忽略的两个点

先看两个经常被忽略的细节:第一,ss -t 默认只查看 TCP,不会把 UDP 带出来,而不少“半开”现象其实更容易出现在 UDP 场景中,比如 DNS 请求发出后长时间没有响应,既不重试,也没有清理;第二,所有状态过滤的写法都必须严格使用小写加连字符,state time-wait 才是正确写法,像 state TIME_WAITstate timewait 这类写法都会直接静默失败,不会报错,也不会有任何输出。

真正卡住的半开连接,往往隐藏在 CLOSE-WAITFIN-WAIT-2 中——前者表示你收到了 FIN 却没有发 FIN,后者表示你发出了 FIN 却没有等到 ACK,这两个状态都不会自动超时清理,必须依靠应用主动处理。

来源:https://www.php.cn/faq/2977608.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Mac微信输入法如何开启剪贴板功能设置

Mac微信输入法如何开启剪贴板功能设置

必须开启微信输入法的剪贴板同步功能才能实现跨设备复制粘贴,需先设为默认输入法,开启本地剪贴板历史记录,再通过匹配码或扫码完成Mac与iPhone配对。如果想在 Mac 上通过微信输入法实现跨设备复制粘贴,第一步就得先在微信输入法里把剪贴板同步功能打开;不然的话,iPhone 或 iPad 上刚复制的

时间:2026-08-14 14:24
Win10无法打开.exe文件怎么办

Win10无法打开.exe文件怎么办

双击 exe文件没有反应时,建议按顺序排查并修复:先使用管理员命令重置文件关联(assoc 和 ftype),再手动修正注册表中的两个关键键值,或直接导入标准 reg 脚本;随后检查并解除文件锁定;最后运行 SFC 和 DISM 修复系统组件。如果在 Windows 10 中双击 exe 文件完

时间:2026-08-14 14:24
Mac屏幕右下角实时翻译怎么关闭

Mac屏幕右下角实时翻译怎么关闭

如果你想把 Mac 屏幕右下角弹出的实时翻译浮窗马上关闭,通常按照这三步操作最有效:第一,截图后先不要点击右下角的预览缩略图;如果已经误点进入编辑界面,直接按 Esc 键退出。第二,前往系统设置,关闭“键盘→服务→文本→翻译”。第三,再将“辅助功能→实况文本”以及“信息→信息效果→建议翻译”一起关闭

时间:2026-08-14 13:52
Windows 10 桌面右键一直转圈怎么办

Windows 10 桌面右键一直转圈怎么办

Windows 10 桌面右键一直转圈,问题根源通常不在“系统突然变慢”,而是在 Shell 扩展加载过程中发生卡顿。处理这类故障,建议按顺序排查:先重启资源管理器,释放被占用或卡死的线程;接着使用 ShellExView 禁用可疑的 Context Menu 扩展,确认是否为某个右键菜单项导致响应

时间:2026-08-14 13:51
Android中View与ViewGroup的概念解析

Android中View与ViewGroup的概念解析

本节引言 告别第一章之后,我们正式进入第二章——Android 中 UI(User Interface,用户界面)组件的详细讲解。这个小节要重点学习的,是所有界面控件的基础父类:View 和 ViewGroup!这里结合官方文档的核心内容,来帮助大家快速理解 Android UI 开发中最重要的两个

时间:2026-08-14 13:51
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜