$ ss-tlnState Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN01280.0.0.0:220.0.0.0:* LISTEN0128[::]:22[::]:*
字段
含义
排查要点
State
socket 状态
LISTEN/ESTAB/TIME-WAIT 等
Recv-Q
接收队列积压字节数
>0 表示应用层未及时读取数据
Send-Q
发送队列积压字节数
>0 表示数据未发送完成或对方未确认
Local Address:Port
本地地址和端口
服务监听的 IP 和端口
Peer Address:Port
对端地址和端口
连接的对端 IP 和端口(*表示监听)
3.2 高级输出(ss -tin)
$ ss-tinstate established sport=:443 State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB00192.168.1.10:44310.0.0.5:54321 cubic wscale:7,7 rto:204 rtt:12.5/2.3 ato:40 cwnd:10 ssthresh:256 send1.2Mbps rcv_rtt:1 rcv_space:29200
TCP 细节字段解读:
字段
含义
排查价值
cubic
拥塞控制算法
是否为 cubic/bbr
wscale
窗口缩放因子
支持大窗口传输
rto
重传超时时间(ms)
>1000ms 可能网络延迟高或丢包
rtt
往返时延(ms)
网络延迟指标
rttvar
RTT 方差
网络抖动程度
ato
延迟确认超时
TCP 延迟确认机制
cwnd
拥塞窗口大小(包数)
吞吐量关键指标
ssthresh
慢启动阈值
拥塞控制状态
send
发送速率
实际传输速度
rcv_rtt
接收端 RTT
对端延迟视角
rcv_space
接收端通告窗口
对端缓冲区大小
3.3 进程信息(ss -tnlp)
$ ss-tlnpsport=:22 State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN01280.0.0.0:220.0.0.0:* users:(("sshd",pid=1234,fd=3))LISTEN0128[::]:22[::]:* users:(("sshd",pid=1234,fd=4))
established syn-sent syn-recv fin-wait-1 fin-wait-2 time-wait closed close-wait last-ack listening closing all
# 只查看已建立连接ss state established# 只查看 TIME_WAIT 状态的连接(排查端口耗尽)ss state time-wait# 查看所有状态ss state all
4.3 地址/端口过滤
过滤条件
语法示例
实战场景
源端口
sport = :22
查看 SSH 服务端连接
目标端口
dport = :443
查看 HTTPS 客户端连接
源地址
src 192.168.1.1
查看来自某 IP 的连接
源网段
src 192.168.1.0/24
查看内网某网段的连接
目标地址
dst 10.0.0.5
查看发往某 IP 的连接
地址+端口
src 192.168.1.1:443
精确匹配
排除条件
src != 192.168.1.1 sport != :22
过滤掉某个 IP/端口
4.4 表达式组合
# OR 组合:匹配 80 或 443 端口ss-tn'( sport = :80 or sport = :443 )'# AND 组合:已建立且来自内网ss state established and src10.0.0.0/8# 复杂组合:已建立且(80 或 443)且来自 192.168.x.xss-tnstate established and src192.168.0.0/16 and'( sport = :80 or sport = :443 )'
五、实战场景与实例输出
5.1 场景一:服务端口被占用?查谁在用!
# 问题:启动 nginx 报错 "port 80 already in use"# 排查:查看 80 端口被哪个进程占用$ ss-tlnpsport=:80 State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN01280.0.0.0:800.0.0.0:* users:(("nginx",pid=12345,fd=6))LISTEN0128[::]:80[::]:* users:(("nginx",pid=12345,fd=7))# 结论:nginx (PID 12345) 正在占用 80 端口# 解决方案:kill -9 12345 或修改 nginx 配置