当前位置: 首页 > article >正文

【网络排查工具】SRE手边这 6 个命令,能搞定 90% 的网络故障

你在排查网络故障时是不是上来就ping一下通了就觉得“没事”然后用户说“还是慢”你又traceroute看一遍发现一堆* * *就懵了老实说我干 SRE 的头两年也这样。后来被线上事故教育了几回才明白每个命令都有它的正确打开方式用错了等于白干。这篇文章不讲大道理。我把手头最常用的 6 个网络排查工具按“先看通不通 → 再看怎么走 → 再看谁在占 → 最后抓包破案”的顺序讲清楚。每个工具只讲高频用法不做“全部参数罗列”——那种事让man手册去做就行。读完这篇你能快速判断是本地问题、运营商问题还是对端服务问题定位带宽被谁吃掉了进程级在 5 分钟内抓出 TCP 重传、丢包、延迟抖动的真凶避免被 ICMP 限速这类“假丢包”误导本文所有命令在Ubuntu 22.04 / RHEL 9上实测通过。如果你用的是 CentOS 7 或更早版本个别参数可能有差异我会注明。你要先确认这几件事开始排查前花 10 秒确认这些前置条件。别跳过去我在这上面吃过亏。条件检查方法踩坑提醒有 root 或 sudo 权限sudo -vtcpdump、iftop、nethogs 都需要。没有的话先找管理员开目标 IP/域名正确nslookup example.com域名解析错误是最隐蔽的问题之一建议先用 IP 测一轮网卡名称正确ip link show或ip a现在的命名是 eth0、ens3、enp0s3 等别想当然写 eth0防火墙没有完全拦死sudo iptables -L -n有些公司的安全组会拦 ICMP这时 ping 不通不代表服务真的挂了准备就绪说干就干。工具 1ping —— 永远的第一道门什么时候用它别笑话 ping——这个 1983 年就有的工具到今天仍然是排查网络的“敲门砖”。它的价值不是“测速”而是回答三个问题目标机器在不在网络层可达大概有多远RTT 粗估丢包严重吗丢包率我推荐的用法普通工程师用ping 8.8.8.8就结束了我习惯这样打# 发 30 个包带时间戳不走域名解析避免 DNS 干扰 ping -c 30 -D -n 8.8.8.8输出示例[1763800433.123456] 64 bytes from 8.8.8.8: icmp_seq1 ttl117 time12.3 ms [1763800434.126789] 64 bytes from 8.8.8.8: icmp_seq2 ttl117 time11.9 ms ... --- 8.8.8.8 ping statistics --- 30 packets transmitted, 30 received, 0% packet loss, time 29034ms rtt min/avg/max/mdev 11.234/12.567/15.432/1.234 ms参数解释-c 30发 30 个包就停别挂在那等 CtrlC-D每行前面打印时间戳事后对日志排查非常有用-n不解析域名快很多什么时候它不靠谱ping 用 ICMP 协议但很多运营商和云平台会限速或直接丢弃 ICMP 包。也就是说ping显示 50% 丢包但你的业务TCP 80/443可能完全正常。我一个客户曾经因为这事半夜被叫起来——监控显示 ping 丢包 60%结果业务丝滑如常。后来发现是运营商对 ICMP 做了限速策略。所以记住ping 不通不一定代表服务挂了。用nc -zv或telnet去测业务端口才是金标准。工具 2mtr —— 比 traceroute 靠谱 10 倍它解决了什么问题traceroute只跑一遍遇到中间某节点不响应就直接显示***然后你就抓瞎了。而mtrMy TraceRoute把ping和traceroute合二为一持续探测每个中间节点给出丢包率和延迟统计。用一句话说traceroute 告诉你“经过了哪些路由器”mtr 告诉你“每台路由器表现怎么样”。安装方法# Ubuntu/Debian sudo apt install mtr -y # CentOS/RHEL sudo yum install mtr -y核心命令这个你得背下来# 日常推荐TCP 模式 443 端口更接近真实业务路径 mtr --tcp -P 443 -n -c 100 目标IP参数说明--tcp改用 TCP 数据包不是 ICMP走业务走的链路-P 443指定探测端口如果是 HTTP 服务就改 80-n不反解域名-c 100发 100 个包后退出怎么看输出Start: 2025-12-13T10:00:000800 HOST: my-server Loss% Snt Last Avg Best Wrst StDev 1. 192.168.1.1 0.0% 100 1.2 1.5 1.0 2.0 0.3 2. 10.0.0.1 0.0% 100 5.1 5.5 4.8 6.2 0.4 3. 36.110.64.1 62.9% 100 3.1 12.8 3.0 15.1 4.2 4. 223.112.0.1 0.5% 100 12.3 13.1 11.2 15.0 0.8 5. 目标服务器IP 0.0% 100 18.2 19.0 17.5 20.5 0.7逐列解读Loss%这一跳的丢包率。跳 3 丢包 62.9%但延迟只有 3-15ms且后续节点丢包恢复正常 →这是典型的 ICMP 限速不是真故障。Avg平均延迟。看趋势——突然从 5ms 跳到 100ms 再降回来说明中间有波动。StDev标准差。数字越大表示抖动越严重。三个关键判断原则只看最后一跳的 Loss%如果最终目标丢包率 0%中间某跳 50% 丢包但后续恢复了大概率是那个节点禁 ICMP 回复不是故障。某一跳延迟突然飙升比如从 10ms 跳到 300ms之后又降不下来 → 问题大概率出在这跳所在的运营商骨干网或跨网互联节点。跳数中出现???但后续节点正常说明该节点不响应探测忽略即可。工具 3ss —— 比 netstat 快一个数量级为什么不用 netstat老工程师习惯netstat -an但在生产环境连接数几万的时候netstat能慢到你怀疑机器卡了。ss直接从内核获取 socket 信息性能和信息量都碾压 netstat。我个人的原则新装的 Linux 一律用ss除非你在连 netstat 都没装的旧机器上临时救火。高频命令速查你要干什么命令备注看所有监听端口TCPUDPss -tuln-t TCP-u UDP-l 监听-n 不解析看 ESTABLISHED 连接ss -tn最常用看某个端口谁在监听ss -tlnp | grep :80-p 显示进程名/PID看 TCP 重传统计ss -ti输出里找retrans看所有 TIME_WAITss -tan state time-wait排查端口耗尽问题示例定位谁在占用 8080 端口$ sudo ss -tlnp | grep :8080 LISTEN 0 128 0.0.0.0:8080 0.0.0.0:* users:((java,pid12345,fd46))告诉我PID 12345 的 Java 进程在监听着。直接kill或查日志。彩蛋ss -i看 TCP 内部状态这个很多人不知道。加上-i能看到每个连接的 RTT、拥塞窗口、重传次数$ ss -ti state established ( dport :443 or sport :443 ) ... cubic wscale:7,7 rto:204 rtt:12.3/1.2 ato:40 mss:1448 pmtu:1500 rcvmss:536 advmss:1448 cwnd:10 bytes_acked:123456 segs_out:123 segs_in:111 retrans:0/0重点关注rtt:12.3/1.2平均 RTT 12.3ms抖动 1.2msretrans:0/0重传次数左当前重传右总重传。如果重传很多说明链路不稳定或丢包严重。工具 4tcpdump —— 抓到真凶为止前面所有工具都是“猜”tcpdump才是“看现场”。它能抓到每一个数据包帮你确认“到底发了没有”“对方回了没有”“是谁在重传”。基础用法# 抓 100 个包写文件不要直接在终端打印 sudo tcpdump -i eth0 -c 100 -w /tmp/capture.pcap # 用 tcpdump 或 Wireshark 读文件 tcpdump -r /tmp/capture.pcap -n | head -20两个关键的参数一定要记住-s 0捕获完整数据包默认可能只抓前 68 字节不够用-i any谨慎使用会从所有接口抓包在 bond/team 环境下会重复抓同一个流量干扰判断实用过滤表达式建议收藏场景命令只抓目标 IP 的包sudo tcpdump -i eth0 host 10.0.0.1 -c 100抓 80 端口的 HTTP 流量sudo tcpdump -i eth0 tcp port 80 -A -c 50-A 以 ASCII 显示内容抓 SYN 包看 TCP 握手sudo tcpdump -i eth0 tcp[tcpflags] tcp-syn ! 0 -c 20抓 RST 包看谁主动断连sudo tcpdump -i eth0 tcp[tcpflags] tcp-rst ! 0组合条件源 IP 且目标端口 443sudo tcpdump -i eth0 src 192.168.1.100 and dst port 443实战抓 TCP 重传sudo tcpdump -i eth0 -e tcp[13] 0x04 ! 0 -c 100这条抓的是设置了 RST 标志的包tcpflags 第 4 位。如果是重传排查更常用的是sudo tcpdump -i eth0 -vv tcp[tcpflags] tcp-syn ! 0 or tcp[tcpflags] tcp-ack ! 0然后在输出里找重复的seq号——那就是重传。顺便提一嘴如果流量很大建议把 snaplen 限制到 256 字节够分析 TCP 头就行否则 tcpdump 自己可能丢包。工具 5iftop / nethogs —— 看看谁在偷带宽场景带宽被跑满了但不知道是谁干的iftop告诉你“哪些连接在消耗带宽”nethogs告诉你“哪个进程在消耗带宽”。iftop按连接看sudo iftop -i eth0 -n界面跑起来后按P显示端口号按T显示累计流量。从上往下是流量最大的连接。nethogs按进程看我的最爱sudo nethogs eth0输出类似PID USER DEVICE SENT RECEIVED COMMAND 1234 root eth0 1.2 MB 3.4 MB /usr/bin/nginx 5678 nobody eth0 8.9 MB 0.1 MB /usr/sbin/mysqld一目了然——如果 MySQL 在疯狂收数据查慢查询如果是 nginx 在狂发看访问日志。什么时候用哪个场景推荐工具想知道“哪个 IP/端口在跑流量”iftop想知道“哪个进程在跑流量”nethogs想看接口级实时速率图形化nload或bmon想看历史趋势昨天/上周的流量vnstat实战组合按步骤定位网络故障好了工具介绍完了。下面我把它们串起来给一个真正的故障排查流程。你下次遇到问题照着这个顺序走就行。场景用户反馈“服务很慢有时候还连不上”第一步快速确认30 秒内完成# 1. 业务端口通不通别用 ping nc -zv 目标IP 8080 # 或 time curl -o /dev/null -s -w %{time_total}\n http://目标IP:8080/health第二步看链路质量mtrmtr --tcp -P 8080 -n -c 50 目标IP重点看最后一跳丢包率 5% → 网络丢包看中间哪一跳开始丢最后一跳延迟 正常值 2 倍 → 某跳延迟突增定位后联系运营商第三步看本机连接状态ssss -tan | grep -c ESTAB # 看有多少活跃连接 ss -tan | grep -c TIME-WAIT # 看 TIME_WAIT 堆积情况 ss -ti | grep -c retrans # 看有没有重传如果TIME-WAIT有几万个且本地端口不够用业务就会报“Cannot assign requested address”。第四步抓包确认tcpdumpsudo tcpdump -i eth0 host 目标IP and port 8080 -w /tmp/debug.pcap -c 500把/tmp/debug.pcap拖到 Wireshark 里用tcp.analysis.retransmission显示过滤器看重传包。几个我踩过的坑值得你花 2 分钟看看这些都是线上真实炸过的每一条都花了不止一个通宵。坑 1ICMP 丢包不等于业务丢包我遇到过 mtr 中间跳丢包 60% 但业务零故障的情况。后来查了一圈才知道运营商骨干网对 ICMP 做了限速不是真丢包。避坑方法用mtr --tcp代替默认的 ICMP 模式或者直接用tcping测业务端口。坑 2netstat 在生产环境卡死有一次半夜被拉起来客户说服务器“网络卡死了”。上去netstat -an跑了 40 秒才出结果。改用ss1 秒出。从那以后我的习惯新机器一律用ss除非不得不用 netstat。坑 3tcpdump -i any 导致数据翻倍一个同事用tcpdump -i any -w test.pcap抓包分析网络重传问题发现 TCP 重传包数量是实际的两倍。排查了两个小时才发现在 bond 模式下-i any会把同一个数据包从物理接口和 bond 虚拟接口各抓一次造成重复。记住不用 -i any明确指定网卡名。坑 4ping 跨洋链路看不出问题用 ping 测新加坡服务器RTT 稳定在 80ms看起来挺正常。但业务就是慢。后来用mtr --tcp -P 443一跑发现第 9 跳延迟从 30ms 突增到 150ms丢包 20%。ping 看不到中间跳细节mtr 才能。最后说两句网络排查的核心不是“会敲命令”而是知道什么时候敲什么命令、看到输出后怎么解读。把这 6 个工具吃透了ping→ 快速敲门mtr→ 看路径质量ss→ 看连接状态tcpdump→ 抓包破案iftop/nethogs→ 抓出带宽杀手你就能搞定 90% 的网络故障。工具这东西多用才能形成肌肉记忆。建议你下次业务正常的时候找个测试环境把每个命令跑一遍看看正常输出长什么样。等出故障时你一眼就能看出哪里不对劲。你还有什么排查网络的好用命令或者踩过的坑评论区见。

相关文章:

【网络排查工具】SRE手边这 6 个命令,能搞定 90% 的网络故障

你在排查网络故障时,是不是上来就 ping 一下,通了就觉得“没事”?然后用户说“还是慢”,你又 traceroute 看一遍,发现一堆 * * * 就懵了?老实说,我干 SRE 的头两年也这样。后来被线上事故教育了…...

机械识图:剖视图

视图主要用于表达机件的外部形状和结构,当机件的内部形状和结构(简称为内形)比较复杂时,若采用视图表示,在某些视图中就会出现较多的虚线,既不便于读图和标注尺寸,图面也不清晰。剖视图的形成 假…...

【音视频 | ALSA】SS528开发板ALSA驱动移植与USB音频设备调试实战

1. ALSA驱动与SS528开发板概述 在嵌入式Linux音频开发中,ALSA(Advanced Linux Sound Architecture)是当前最主流的音频驱动框架。我最近在SS528开发板上完成了一个USB音频设备的完整移植项目,整个过程涉及内核驱动编译、用户空间库…...

FLUX.1-Krea-Extracted-LoRA应用场景:LoRA微调研究者风格迁移教学演示

FLUX.1-Krea-Extracted-LoRA应用场景:LoRA微调研究者风格迁移教学演示 1. 真实感图像生成模型介绍 FLUX.1-Krea-Extracted-LoRA 是一款专注于真实感图像生成的AI模型,它通过LoRA微调技术为FLUX.1-dev基础模型注入了独特的写实风格。这个模型特别适合需…...

高通平台设备树实战:给Android设备添加长按电源键关机功能(基于qpnp-power-on.c)

高通平台设备树深度定制:实现长按电源键关机功能的技术解析 在嵌入式设备开发中,电源管理功能的定制化需求日益增多。不同于消费级手机产品,工业平板、IoT设备等专用硬件往往需要独特的电源操作逻辑。本文将深入探讨如何在高通骁龙平台上&…...

GitHub加速终极指南:3分钟解决国内访问难题的完整方案

GitHub加速终极指南:3分钟解决国内访问难题的完整方案 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 对于国内开发者来…...

知识网络构建的革命性突破:如何用Obsidian Zettelkasten实现系统性思维重构?

知识网络构建的革命性突破:如何用Obsidian Zettelkasten实现系统性思维重构? 【免费下载链接】Obsidian-Templates A repository containing templates and scripts for #Obsidian to support the #Zettelkasten method for note-taking. 项目地址: ht…...

如何查看vDisk分组使用统计数据

如何查看vDisk分组使用统计数据本文为澄成vDisk IDV云桌面运维人员、高校机房管理员提供如何查看vDisk分组统计的详细操作指引,适用于已完成本地化部署的澄成vDisk IDV云桌面管理控制台环境,不涉及vDisk分组创建、权限配置与统计导出功能配置讲解。澄成v…...

保姆级教程:用ESP32-CAM和Blinker App,5分钟搭建你的第一个无线监控(附常见上传失败解决方案)

零基础玩转ESP32-CAM:从开箱到手机监控的完整避坑指南 第一次拿到ESP32-CAM这个小玩意儿时,我盯着它看了半天——这真的能变成监控摄像头?作为一个连电阻电容都分不清的纯小白,我花了整整三天时间才让手机成功显示出画面。现在回想…...

高性能OFD转PDF引擎架构设计与实现方案

高性能OFD转PDF引擎架构设计与实现方案 【免费下载链接】Ofd2Pdf Convert OFD files to PDF files. 项目地址: https://gitcode.com/gh_mirrors/ofd/Ofd2Pdf 在政务、金融和教育领域广泛应用的OFD(开放版式文档)格式与全球通用的PDF格式之间的兼容…...

Spring Boot 4.0 Agent-Ready 架构实战手册(仅限首批内测团队使用的7条黄金配置守则)

第一章:Spring Boot 4.0 Agent-Ready 架构概览与演进脉络Spring Boot 4.0 标志着 JVM 应用可观测性与运行时可插拔能力的重大跃迁。其核心设计目标是原生支持 Java Agent 的零侵入式集成,使 APM、安全审计、链路追踪等能力不再依赖启动参数硬编码或定制化…...

从GPT-3到ChatGPT:一文读懂RLHF(人类反馈强化学习)的实战流程与核心代码

从GPT-3到ChatGPT:RLHF技术实战全解析与代码实现 当1750亿参数的GPT-3在2020年横空出世时,人们惊叹于它惊人的文本生成能力,却也发现这个"天才少年"常常答非所问、编造事实甚至产生有害内容。OpenAI的研究团队在2022年提出的Instru…...

LangChain的Memory实战:从聊天记录到智能客服,如何让AI记住‘你’是谁?

LangChain记忆模块实战:构建能记住用户身份的智能对话系统 在人工智能对话系统的发展历程中,最显著的瓶颈之一就是"记忆缺失"问题——传统聊天机器人往往将每次交互视为独立事件。这种设计导致用户体验支离破碎,如同每次都在与失忆…...

无封号焦虑!Claude Code 官方插件 +VS Code ,稳定接入的配置指南

之前的文章 只需一个 API!教你用Continue/Kilo插件在VS Code里丝滑切换Qwen3与Opus 4.6 介绍了如何使用 DigitalOcean 的 Serverless Inference 服务配置 VS Code 插件使用 Opus4.6 或者 OpenAI 系列模型,但是由于默认的API格式为 Open AI 格式&#xff…...

AI搜索优化不是SEO!一文看懂GEO服务商怎么挑

AI搜索优化不是SEO!一文看懂GEO服务商怎么挑很多企业踩坑,就是把GEO当成SEO来选,用关键词排名、收录量、外链数判断效果,完全方向错误。核心区别一句话:SEO优化网页位置,GEO优化AI认知 SEO: 关键…...

Obsidian Zettelkasten终极指南:从笔记碎片到知识网络的思维革命

Obsidian Zettelkasten终极指南:从笔记碎片到知识网络的思维革命 【免费下载链接】Obsidian-Templates A repository containing templates and scripts for #Obsidian to support the #Zettelkasten method for note-taking. 项目地址: https://gitcode.com/gh_m…...

QQ音乐全能解析工具:智能解锁音乐世界的终极利器

QQ音乐全能解析工具:智能解锁音乐世界的终极利器 【免费下载链接】MCQTSS_QQMusic QQ音乐解析 项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic 在数字音乐时代,音乐爱好者们常常面临这样的困境:心仪的歌曲被平台限制&am…...

银河麒麟V10系统下,SVN从安装到提交的保姆级避坑指南(实测svn://协议问题)

银河麒麟V10系统下SVN全流程实战指南:从安装到协议适配深度解析 第一次在银河麒麟V10上配置SVN的经历让我记忆犹新——原本以为十分钟就能搞定的版本控制工具,却因为svn://协议的连接问题折腾了大半天。作为国产操作系统的典型代表,银河麒麟V…...

FreeModbus从机移植避坑指南:STM32/GD32串口中断与T35定时器那些事儿

FreeModbus从机移植深度解析:STM32/GD32串口中断与T35定时器的关键实现细节 当你在深夜调试FreeModbus从机移植项目,通信却始终不稳定——数据包丢失、响应超时、甚至完全无法建立连接。这不是简单的配置问题,而是底层机制在作祟。本文将带你…...

告别U盘和光盘:用iSCSI虚拟硬盘给服务器装Kylin V10 SP1(保姆级图文)

无盘化革命:基于iSCSI的麒麟V10 SP1服务器高效部署指南 在数据中心运维和服务器管理的日常工作中,系统部署效率往往成为制约整体工作流程的关键瓶颈。传统的光盘或U盘安装方式不仅耗时费力,在面对批量部署需求时更是捉襟见肘。本文将介绍一种…...

2026 年 4 月深度复盘:Hermes Agent 开源潮下,悬镜灵境 AIDR 如何构建智能体安全 “全链路护城河”

一、2026 年 4 月 Hermes Agent 开源热点:技术跃迁与安全风险双重爆发近期,Nous Research 开源的Hermes Agent凭借 “自进化、动态技能生成、跨会话记忆” 核心能力,成为 AI 智能体领域顶流动量。其突破传统大模型 “单次推理” 局限&#xf…...

DeepPCB:工业级PCB缺陷检测数据集终极指南

DeepPCB:工业级PCB缺陷检测数据集终极指南 【免费下载链接】DeepPCB A PCB defect dataset. 项目地址: https://gitcode.com/gh_mirrors/de/DeepPCB DeepPCB是业界领先的印刷电路板缺陷检测开源数据集,为计算机视觉和智能制造领域的研究人员与工程…...

Scratch蓝桥杯真题解析:用‘自制积木’模块化绘制金字塔(附完整代码)

Scratch蓝桥杯竞赛实战:用模块化思维构建动态金字塔 当小猫角色在Scratch舞台上开始绘制第一块砖时,许多初学者会不假思索地直接堆叠重复代码。但真正高效的编程思维,往往始于对问题的拆解与重构。本文将带你用"自制积木"这一模块化…...

荧光法叶绿素在线传感器

荧光法叶绿素在线传感器核心参数明确,适配多场景监测需求,关键参数如下,确保检测精准性与场景适配性:测量原理:荧光法,依托叶绿素的荧光特性和吸光特性实现精准检测,灵敏度高,可捕捉…...

Cursor Free VIP:突破AI编程助手限制的技术解决方案

Cursor Free VIP:突破AI编程助手限制的技术解决方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial…...

Docker 27边缘容器启动延迟突增400%?揭秘cgroup v2+systemd-journald协同故障链及4行修复命令

第一章:Docker 27边缘容器启动延迟突增400%?揭秘cgroup v2systemd-journald协同故障链及4行修复命令在边缘计算场景中,Docker 27.0.0 升级后,大量用户报告容器平均启动耗时从 120ms 飙升至 600ms 以上,延迟增幅达 400%…...

Charles手机App抓包完整配置指南

文档概述 本文档旨在提供一套完整、可操作的Charles配置流程,帮助开发者和测试人员在iOS设备上实现对手机App的HTTPS请求抓包,获取完整的请求URL(含参数)。 适用场景:App接口调试、网络请求分析、API逆向分析 目录 …...

10-案例篇-四个现场与一个反例

案例篇:四个现场与一个反例 一套方法论若想站住,最终总要回到现场。没有现场,判断就容易变成口号;没有可反复回查的案例,结构也很容易失去重量。 案例篇因此不是附录,而是全书的证据底盘。 序章和第二篇里反…...

面试官总问的‘线程安全List’怎么选?深入源码对比synchronizedList和CopyOnWriteArrayList的性能与内存开销

面试官最爱问的线程安全List选择指南:synchronizedList与CopyOnWriteArrayList深度解析 在Java并发编程的面试中,线程安全集合的选择几乎是必考题。当面试官抛出"如何保证List线程安全"这个问题时,你能从底层原理到实战场景给出令人…...

PaddleOCR实战:手把手教你训练一个识别金属零件字符的定制化模型(从PPOCRLabel标注到模型部署)

PaddleOCR工业实战:金属零件字符识别模型定制全流程解析 金属零件表面的字符识别一直是工业质检中的关键环节。与通用OCR不同,工业场景下的字符往往面临反光、油污、低对比度等复杂干扰。本文将完整演示如何基于PaddleOCR框架,从零构建专用于…...