Network · Chapter 09

第 9 章 · 排错工具箱

The Toolbox · From "Is It Alive" to "Show Me the Packets"

前八章讲的都是"网怎么工作":语言怎么定、地址怎么编、路怎么寻、包怎么传、锁怎么上。这一章面对一个更狼狈也更真实的处境——网坏了。网页转圈、游戏掉线、接口报错、"网络连上了但什么都打不开"。这时候背概念没用,得动手查。网络排错是这么一门手艺:把"网出了问题"这句空话,一层层拆小,拆到某一层能开口说"是我"。这一章六节,就是六件从粗到细的家什:ping 问生死traceroute 问路径nslookup 问名字curl 问对方netstat 问自己Wireshark 放录像——合起来,正好把 TCP/IP 的每一层都盘问一遍。读完这一章,你再遇到"上不了网",第一反应将不再是重启路由器,而是掏工具。

生活场景
🔧 老师傅带徒弟上门维修的一天

物业里干了三十年的赵师傅,腰上永远挂一串工具。徒弟小周跟了他一天,记满了笔记。
上午 302 报"家里没电"——赵师傅没拆任何东西,先拿电笔在门口插座上试了试:"电表那边来的电是通的,问题在屋里。"前后十秒。下午 501 报"水压小"——他顺着一楼到六楼的管线逐层听、逐层试压,最后指着三楼一段管子:"堵在这儿。"傍晚 108 报"网断了"——他先 ping 了一下网关,又 ping 了外网,"楼里通、外面不通,找运营商。"

小周问:"师傅,你怎么不进来就拆?"赵师傅敲了敲腰上的工具串:"先花一分钟的检查,省一小时的拆卸。工具不在多,在于知道先用哪个。"

这一章就是赵师傅那条工具腰带:六件家什各管一层,先便宜的、后昂贵的,先把范围缩小、再动手拆解——网络排错的全部章法,就缝在这条腰带上。

本章要回答什么

说白了,这一章要回答的总问题是:"网络出了问题,怎么科学地找到病根,而不是瞎猜瞎重启?"拆开来是六个小问题,正好对应六节:

把这一章想成"一条分诊流水线"
网络故障是个说不清症状的病人,被送到这条流水线上,一站一站往里送:

第一站,分诊台(§ 9.1 ping)——先摸脉:有生命体征吗?快慢如何?多数小病到这就看完了:哦,虚惊一场;哦,确实断了。

第二站,影像科(§ 9.2 traceroute)——脉还在但人喊疼?拍张片子看路径:堵在小区门口、城际干道还是对方楼下。

第三站,挂号处复核(§ 9.3 nslookup)——确认没挂错科:名字和门牌对得上吗?查号台给的号是真是假?

第四站,问诊室(§ 9.4 curl)——和"对方"直接对话:把请求原样递过去,把回执原样拿回来,状态码分诊:4xx 查自己,5xx 怨对方,3xx 跟着走

第五站,查体室(§ 9.5 netstat)——镜头掉转对准病人自己:进程起了没、门开了没、谁在偷偷外联。

第六站,手术室监护仪(§ 9.6 Wireshark)——疑难杂症终极一站:所有原始波形一屏排开,每一次心跳的搏动都记录在案,谁也赖不掉。

流水线的规矩只有两条:由近及远(先查自己,再查世界)、由粗到细(先一分钟的检查,后一小时的解剖)——顺序乱了,就是瞎忙。

本章的行进地图

先看地图再上路。六节不是并列的六个命令,而是一支分工明确的小队——每一节都比上一节看得更细:

#小节解决的问题核心比喻一句话记忆
1§ 9.1 ping通不通、快不快、丢多少投石问路 / 摸脉先问生死,再问快慢
2§ 9.2 traceroute包走到哪一站断了查物流轨迹 / 拍片子星号不是死刑,去回不同路
3§ 9.3 nslookup / dig域名解析对不对、干不干净查号台问址两地对比,劫持现形
4§ 9.4 curl / wget对方亲口回了什么不穿外壳的浏览器状态码首位定分诊
5§ 9.5 netstat / ss本机端口与连接状态门卫的登记簿TIME_WAIT 是礼貌,CLOSE_WAIT 是事故
6§ 9.6 Wireshark逐包对质,终审裁决网卡上的摄像机别的工具给怀疑,抓包给判决

这张表里藏着一条值得先记住的暗线:六件工具在 TCP/IP 各层上各守一段——本机与端口(netstat)、名字与应用(nslookup、curl)、网络与路径(ping、traceroute)、直到逐字节(Wireshark)。第 2 章说"分层是网络的设计哲学",这一章补上另一半:分层,也是排错的工作编制表。一层一工具,谁的问题谁认领。

本章的六节

§ 9.1

ping 与 ICMP

回声协议、RTT 与抖动、丢包率、TTL 倒计数、ping 不通的五种可能、平替与局限。

§ 9.2

traceroute 路径追踪

TTL 钓鱼术、逐跳地图、星号三解、非对称路由、绕路与跨境路径的判读。

§ 9.3

nslookup / dig

递归与权威、记录类型全解、TTL 与缓存、公共 DNS 盘点、两地对比识劫持。

§ 9.4

curl / wget

状态码分诊、-v 回放对话、-w 四段计时、重定向与 POST、脚本化巡检。

§ 9.5

netstat / ss

监听与连接状态、0.0.0.0 与 127.0.0.1、端口占用三步破案、TIME_WAIT 大军、巡楼清单。

§ 9.6

Wireshark 抓包

三块屏幕、双过滤器、追踪流、HTTPS 时代看信封、四大经典案子、tcpdump 与 pcap。

学之前先记住这一点

这一章命令密度全篇最高,但四条章法撑起了全部内容——记住章法,命令忘了随时能查回来:

Recap · 收束

这一章是网络篇的"动手"章——前八章修路架桥上锁,这一章教你桥断了怎么办。
六节一线:问生死(ping)→ 追路径(traceroute)→ 核名字(nslookup)→ 对对话(curl)→ 查自家(netstat)→ 放录像(Wireshark)
读完这一章,你应该能做到三件很实用的事:遇到网络故障有一套固定的起手式(先 ping 再逐层缩小);看懂工程师的排查话术("重传""端口没监听""解析被污染"说的是什么);把"重启试试"从第一反应降级为最后一招——重启前后各查一遍,至少知道重启到底修好了什么。

☰ 主页
Xue Hai Wu Ya · Network · Chapter 09