ss 命令指南:网络排查神器
一、命令语法结构ss[options][filter_expression]ss是Socket Statistics的缩写是 Linux 下比netstat更强大、更高效的网络连接查看工具。它直接从内核获取 socket 信息速度快、输出详细是网络排查的首选利器。二、核心选项详解Options2.1 Socket 类型筛选可叠加选项含义使用场景-tTCP socket最常用查看 TCP 连接-uUDP socket查看 UDP 会话-wRAW socket查看原始套接字如 ICMP-xUnix domain socket查看进程间通信 socket-dDCCP 协议数据报拥塞控制协议较少用-l仅显示 listening只看监听中的服务端口-a所有状态包含 listening established 其他所有状态-r解析主机名/服务名默认行为但会变慢-n数字显示不解析强烈推荐避免 DNS 卡顿关键点TCP 类型-t默认只显示 non-listening状态即 established、time-wait 等。想看监听端口必须加-l或-a。2.2 输出格式控制选项含义实战价值-p显示进程名和 PID排查哪个进程占用了端口-e扩展信息socket 详细信息查看 uid、ino 等底层信息-iTCP 内部细节查看 cwnd、rtt、ssthresh、拥塞窗口 ——排查网络性能-o计时器信息查看重传定时器、keepalive、超时时间-msocket 内存用量查看收发缓冲区大小、内存占用-4仅 IPv4过滤 IPv4 连接-6仅 IPv6过滤 IPv6 连接-H不打印表头便于脚本解析-OJSON 格式输出程序化处理监控系统采集-b显示 cgroup 信息容器环境识别进程归属-s汇总统计快速查看协议统计计数三、输出字段详解看懂每一列3.1 标准输出格式ss -tln$ ss-tlnState Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN01280.0.0.0:220.0.0.0:* LISTEN0128[::]:22[::]:*字段含义排查要点Statesocket 状态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:29200TCP 细节字段解读字段含义排查价值cubic拥塞控制算法是否为 cubic/bbrwscale窗口缩放因子支持大窗口传输rto重传超时时间ms1000ms 可能网络延迟高或丢包rtt往返时延ms网络延迟指标rttvarRTT 方差网络抖动程度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,pid1234,fd3))LISTEN0128[::]:22[::]:* users:((sshd,pid1234,fd4))四、过滤表达式详解Filter Expression4.1 基本语法结构ss[options][stateSTATE][条件表达式]重要区别ss 的过滤语法不是 tcpdump 的 BPF而是键值对匹配推荐始终使用运算符以避免歧义。4.2 状态过滤可用的所有状态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 all4.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.1sport ! :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,pid12345,fd6))LISTEN0128[::]:80[::]:* users:((nginx,pid12345,fd7))# 结论nginx (PID 12345) 正在占用 80 端口# 解决方案kill -9 12345 或修改 nginx 配置5.2 场景二网站访问慢看 TCP 性能参数# 问题用户反馈访问 Web 服务慢# 排查查看 443 端口的 TCP 细节$ ss-tinstate established sport:443 State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB00192.168.1.10:44310.0.0.5:39821 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 ESTAB00192.168.1.10:44310.0.0.8:48123 cubic wscale:7,7 rto:800 rtt:345.2/120.5 ato:40 cwnd:3 ssthresh:10 send0.2Mbps rcv_rtt:2 rcv_space:29200# 分析# - 第一个连接rtt12.5ms延迟正常cwnd10窗口适中速率 1.2Mbps# - 第二个连接rtt345ms延迟高cwnd3窗口很小速率仅 0.2Mbps# - 且 rto800ms重传超时很高ssthresh10已进入拥塞避免## 结论第二个连接可能存在网络丢包或对端带宽受限# 建议检查对端 10.0.0.8 的网络状况或调整拥塞控制算法为 bbr5.3 场景三排查大量 TIME_WAIT 连接# 问题系统出现 Cannot assign requested address 错误# 排查查看 TIME_WAIT 数量是否过多$ ss-tstate time-wait|wc-l8543# 分析8543 个 TIME_WAIT可能耗尽本地端口默认范围 32768-60999约 28000 个# 如果短期内达到 28000就会出现端口耗尽# 查看具体 TIME_WAIT 分布$ ss-tstate time-wait sport:80|head-5TIME-WAIT00192.168.1.10:8010.0.0.5:54321 TIME-WAIT00192.168.1.10:8010.0.0.5:54322 TIME-WAIT00192.168.1.10:8010.0.0.5:54323...# 解决方案调整内核参数 net.ipv4.tcp_tw_reuse1# 或减少 net.ipv4.tcp_fin_timeout 值5.4 场景四DDoS 攻击检测单 IP 大量连接# 问题服务器负载飙升怀疑 CC 攻击# 排查查看 ESTAB 连接数 TOP 10$ ss-tnstate established|awk{print $5}|cut-d:-f1|sort|uniq-c|sort-nr|head-101256203.0.113.100432203.0.113.10589192.168.1.1001210.0.0.58192.168.1.1# 分析203.0.113.100 有 1256 个 ESTAB 连接远超正常值# 结论该 IP 疑似攻击源# 查看该 IP 的详细连接$ ss-tnstate established src203.0.113.100 ESTAB00192.168.1.10:443203.0.113.100:48723 ESTAB00192.168.1.10:443203.0.113.100:48724...共1256行# 解决方案iptables -A INPUT -s 203.0.113.100 -j DROP5.5 场景五接收/发送队列积压排查# 问题服务响应慢Recv-Q / Send-Q 数值异常$ ss-tn|head-5State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB00192.168.1.10:8010.0.0.5:39821 ESTAB125680192.168.1.10:8010.0.0.8:48123# ⚠️ Recv-Q12568ESTAB00192.168.1.10:8010.0.0.3:51234 ESTAB037654192.168.1.10:8010.0.0.9:49123# ⚠️ Send-Q37654# 分析# - Recv-Q12568内核接收缓冲区有 12KB 数据应用层未读取 → 应用处理能力不足# - Send-Q37654内核发送缓冲区有 37KB 数据未发送 → 对端接收慢或网络拥塞## 解决方案# - Recv-Q 高检查应用进程是否卡死调大应用读取速度# - Send-Q 高检查对端处理能力或网络带宽是否受限5.6 场景六查看所有监听服务安全审计# 问题安全审计查看服务器开放了哪些端口# 排查显示所有监听端口及进程$ ss-tulnpNetid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN01280.0.0.0:220.0.0.0:* users:((sshd,pid1234,fd3))tcp LISTEN01280.0.0.0:800.0.0.0:* users:((nginx,pid12345,fd6))tcp LISTEN01280.0.0.0:4430.0.0.0:* users:((nginx,pid12345,fd7))tcp LISTEN0128127.0.0.1:33060.0.0.0:* users:((mysqld,pid2345,fd22))udp UNCONN000.0.0.0:530.0.0.0:* users:((dnsmasq,pid3456,fd5))# 分析# - 22: SSH外部访问# - 80/443: Nginx Web 服务外部访问# - 3306: MySQL 只监听 127.0.0.1安全仅本机访问# - 53: DNS 服务UDP## ⚠️ 检查是否有异常端口开放如 4444、6667 等可疑端口5.7 场景七Unix Domain Socket 排查进程间通信# 问题Docker/容器服务通信异常# 排查查看 Unix socket 状态$ ss-xlnpState Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN0128/run/docker.sock * users:((dockerd,pid5678,fd3))LISTEN0128/var/run/dbus/system_bus_socket * users:((dbus-daemon,pid7890,fd3))# 分析docker.sock 存在且监听正常说明 Docker 服务可访问# 如果 docker.sock 不存在 → Docker 服务未启动5.8 场景八JSON 输出监控系统集成# 监控系统采集数据使用 JSON 格式便于解析$ ss-tlnOsport:443[{netid:tcp,state:LISTEN,recv-q:0,send-q:0,local:0.0.0.0:443,peer:0.0.0.0:*,process:nginx}]# 可用 jq 处理$ ss-tlnOsport:443|jq.[] | {port: .local, state: .state}{port:0.0.0.0:443,state:LISTEN}六、统计信息模式ss -s# 查看系统整体 socket 统计$ ss-sTotal:1256(kernel1892)TCP:456(estab123, closed285, orphaned12, timewait42)Transport Total IP IPv6 RAW211UDP862TCP45642333INET46643036FRAG000# 解读# - Total: 1256 个 socketkernel 级 1892含未显示# - estab 123当前活跃连接数# - closed 285已关闭但未释放的 socket# - timewait 42TIME_WAIT 状态数量# - orphaned 12孤儿连接需要关注可能连接泄漏# ⚠️ 如果 orphaned 持续增长 → 应用程序可能存在 socket 泄漏七、状态流转图帮助理解客户端连接流程 CLOSED ↓ (connect) SYN-SENT ↓ (收到 SYNACK) ESTABLISHED ↓ (发送 FIN) FIN-WAIT-1 → FIN-WAIT-2 → TIME-WAIT → CLOSED 服务端监听流程 CLOSED ↓ (bind listen) LISTEN ↓ (收到 SYN) SYN-RECV ↓ (发送 SYNACK) ESTABLISHED ↓ (收到 FIN) CLOSE-WAIT → LAST-ACK → CLOSED八、快速故障排查流程图用户报障 服务访问不了 ↓ ss -tlnp sport :端口 → 服务是否在监听 ├─ 否 → 检查服务进程是否启动 └─ 是 → ss -tn state established dst 对端IP ├─ 无连接 → 检查防火墙/网络路由 └─ 有连接 → ss -tin 查看性能参数 ├─ rtt 200ms → 网络延迟高 ├─ cwnd 10 → 拥塞控制受限 ├─ rto 500ms → 丢包重传 └─ Recv-Q/Send-Q 0 → 应用层瓶颈九、推荐最佳实践9.1 常用别名配置# 添加到 ~/.bashrc 或 ~/.zshrcaliasssallss -tunap# 所有连接 进程aliassslss -tlnp# 所有监听端口 进程aliassscss -tunp state established# 仅已建立连接aliassswss -tn state time-wait# TIME_WAIT 连接aliasssmss -tin# TCP 性能参数# 端口查询函数ssport(){ss-tlnpsport:$1|grep-v^State}# 连接数统计sscount(){echoESTAB:$(ss-tstate established|wc-l)echoTIME_WAIT:$(ss-tstate time-wait|wc-l)echoLISTEN:$(ss-tstate listening|wc-l)}9.2 生产环境排查 checklist步骤命令检查项正常值1ss -tlnp sport :端口服务是否监听LISTEN 状态2ss -tn state established | wc -l活跃连接数无突发暴涨3ss -tin state establishedRTT、CWNDrtt 100ms4ss -tn | grep -v 0 0队列积压Recv-Q/Send-Q 全为 05ss -t state time-wait | wc -lTIME_WAIT 数量 200006ss -s | grep orphaned孤儿连接持续增长需警惕9.3 常见问题速查表现象排查命令可能原因解决方案端口被占用ss -tlnp sport :端口进程未退出kill 对应 PID网站访问慢ss -tin src 客户端IPrtt 高/丢包检查网络链路连接数暴涨ss -tn | awk {print $5} | cut -d: -f1 | sort | uniq -c | sort -nr流量攻击iptables 封禁Cannot assign requested addressss -t state time-wait | wc -l端口耗尽调整 tw_reuse/tw_recycleRecv-Q 持续增长ss -tnp查看对应 PID应用处理慢检查应用日志Send-Q 持续增长ss -tnp查看对端网络拥塞/对端慢检查带宽和对方服务

相关新闻

如何用Deep-Live-Cam实现三键操作的实时AI换脸创作

如何用Deep-Live-Cam实现三键操作的实时AI换脸创作

如何用Deep-Live-Cam实现三键操作的实时AI换脸创作 【免费下载链接】Deep-Live-Cam real time face swap and one-click video deepfake with only a single image 项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam 你是否曾幻想过让历史人物"复活…

2026/10/18 12:56:05 阅读更多 →
Crow Translate:轻量级多引擎翻译工具完整指南

Crow Translate:轻量级多引擎翻译工具完整指南

Crow Translate:轻量级多引擎翻译工具完整指南 【免费下载链接】crow-translate A simple and lightweight translator that allows you to translate and speak text using Google, Yandex Bing, LibreTranslate and Lingva. 项目地址: https://gitcode.com/gh_m…

2026/10/19 15:51:56 阅读更多 →
如何永久保存你的数字记忆:三步打造专属聊天时光机

如何永久保存你的数字记忆:三步打造专属聊天时光机

如何永久保存你的数字记忆:三步打造专属聊天时光机 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMs…

2026/10/18 12:56:57 阅读更多 →

最新新闻

EfficientNetV2架构深度解析:tf_efficientnetv2_b3.in1k为何能又快又小?

EfficientNetV2架构深度解析:tf_efficientnetv2_b3.in1k为何能又快又小?

【免费下载链接】tf_efficientnetv2_b3.in1k 项目地址: https://ai.gitcode.com/hf_mirrors/timm/tf_efficientnetv2_b3.in1k 点击查看 免费下载 本文以开源预训练模型 tf_efficientnetv2_b3.in1k 为例,带你快速看懂这个图像分类模型:它仅用…

2026/10/20 2:01:14 阅读更多 →
GhostTrack:IP归属、号码归属与用户名注册速查——不用开浏览器

GhostTrack:IP归属、号码归属与用户名注册速查——不用开浏览器

GhostTrack:IP归属、号码归属与用户名注册速查——不用开浏览器 【免费下载链接】GhostTrack Useful tool to track location or mobile number 项目地址: https://gitcode.com/GitHub_Trending/gh/GhostTrack GhostTrack 是一个 Python 编写的 OSINT 脚本&a…

2026/10/20 2:01:14 阅读更多 →
Linux内核6.x学习路线:从环境搭建到调试进阶的专栏指南

Linux内核6.x学习路线:从环境搭建到调试进阶的专栏指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 2:01:14 阅读更多 →
树莓派与Arduino选型指南:打破裸机/系统二分法

树莓派与Arduino选型指南:打破裸机/系统二分法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 2:01:14 阅读更多 →
Linux显示驱动调试工具链:从DRM/KMS到PHY寄存器的全栈诊断

Linux显示驱动调试工具链:从DRM/KMS到PHY寄存器的全栈诊断

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 2:01:14 阅读更多 →
Unity代码热更新实战:ILRuntime集成Addressable的完整方案与避坑指南

Unity代码热更新实战:ILRuntime集成Addressable的完整方案与避坑指南

做Unity客户端这些年,只要是做手游的,基本绕不开热更新这个话题。资源热更还好说,AssetBundle或者Addressable都能解决,真正麻烦的是代码热更。以前用Lua,好是好,但团队要养Lua程序员,C#的代码也…

2026/10/20 2:00:13 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →