protocol

TCP连接状态查看全套方法

·5 分钟阅读·1774 字

梳理TCP连接状态查看方法的核心概念、关键流程与实践要点

📋 目录

TCP连接状态查看全套方法

1. TCP 连接状态查看全套方法

核心概念 TCP 连接状态查看方法,涵盖 ss、netstat 等工具,定位网络故障如 TIME_WAIT、CLOSE_WAIT 等异常。

2. 核心查看命令(分新旧工具)

2.1. ss(推荐,性能远优于netstat,云服务器首选)


# 完整连接,含状态、端口、进程

ss -antp

# 只看TCP,显示状态、地址

ss -at

# 过滤TIME_WAIT

ss -at state TIME-WAIT

# 统计各状态连接数量(面试高频)

ss -ant | awk '{print $1}' | sort | uniq -c

常用参数:

  • -a:所有连接(监听+已建立+关闭中)
  • -n:数字端口,不解析域名,速度快
  • -t:仅TCP
  • -p:关联进程PID/程序名
  • -s:直接汇总TCP各类状态统计(最简)

ss -s

2.2. netstat(传统工具,老系统常用)


# 查看全部TCP连接+进程

netstat -antp

# 统计各TCP状态计数

netstat -ant | awk '/tcp/ {print $6}' | sort | uniq -c

2.3. /proc 内核文件(底层查看,排查大量连接场景加分)


# 全局TCP连接表

cat /proc/net/tcp

# IPv6 TCP

cat /proc/net/tcp6

# 字段含义:第4列为TCP状态十六进制编码

# 00=ERROR,01=ESTAB,02=SYN_SENT,03=SYN_RECV,04=FIN_WAIT1,05=FIN_WAIT2,06=TIME_WAIT,07=CLOSE,08=CLOSE_WAIT,09=LAST_ACK,0A=LISTEN,0B=CLOSING

2.4. 实时监控


# 每秒刷新连接状态

watch -n 1 ss -ant

# 持续打印TCP状态统计

watch -n 1 "ss -ant | awk '{print \$1}' | sort | uniq -c"

3. 面试答题标准流程(问到“怎么查看TCP状态”直接这么说)

  1. 日常快速统计优先使用 ss -s,一秒输出 ESTAB、TIME-WAIT、LISTEN 等全部状态总数,快速判断连接堆积。
  2. 查看具体连接与进程使用 ss -antp,显示本地/远端地址、端口、TCP状态、对应业务PID,定位哪个进程产生大量异常连接。
  3. 过滤异常状态
    业务大量超时/丢包时,单独筛选 TIME-WAIT / CLOSE_WAIT 连接:
    ss -at state TIME-WAIT,统计数量判断是否内核参数需要调优。
  4. **底层内核视角排查(高并发场景加分)**连接几十万、ss/netstat卡顿,读取 /proc/net/tcp,通过十六进制状态码批量统计,不占用CPU。
  5. 持续观测波动
    搭配 watch 实时监控,看故障时段异常连接是否同步上涨,定位故障根因。

4. 配套延伸(面试官追问必会)

4.1. 常见异常状态排查思路(二面网络故障必问)

  1. 大量TIME_WAIT
    短连接业务、频繁创建销毁连接;优化:调大 tcp_tw_reuse、tcp_tw_recycle、缩短tw超时时间。
  2. 大量CLOSE_WAIT
    服务端收到客户端FIN后,未调用close()关闭句柄,程序代码漏释放连接;解决:修复业务代码、重启服务。
  3. ESTABLISHED 堆积不释放
    长连接卡死、线程池耗尽、读写阻塞;抓包看是否有持续数据交互。

5. 最简背诵版回答(面试口述)

查看TCP连接状态我分四层工具:

  1. 快速汇总用 ss -s,直接统计所有TCP状态总量;
  2. 查看详细连接和进程用 ss -antp,能看到每条连接的两端地址、状态、归属进程;
  3. 需要筛选异常连接时,用 ss state 参数单独过滤 TIME_WAIT、CLOSE_WAIT;
  4. 高并发连接量巨大,工具卡顿的时候,直接读取 /proc/net/tcp 内核文件,通过状态编码统计;
    同时可以配合 watch 实时监控状态变化,快速定位连接堆积类网络故障。

关联文档

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro