Skip to content

11 · 抓包与网络调试 ​

前端说"后端没返回",后端说"前端没发对",最快的裁决方式是看包。本篇讲 Wireshark / Charles / 命令行三套工具怎么抓、怎么看,以及从现象到定位的排障套路。

速览卡 ​

项内容
一句话定位用抓包把"说不清的网络问题"变成证据
核心内容Wireshark 看协议、Charles 看 HTTPS、curl 快速验证
读完能回答抓包能不能看 HTTPS 内容?连接失败怎么看?
相关板块N02 TCP | N05 TLS

一、三套工具的定位 ​

工具定位何时用
curl命令行快速验证复现请求、看响应头
Charles / Fiddler正向代理抓 HTTPS看应用真实请求、改包重放
Wireshark抓网卡流量看 TCP/TLS/DNS 底层

二、curl 三板斧 ​

bash
curl -v https://example.com/api    # 看握手与请求细节
curl -i https://example.com/api    # 只看响应头
curl -w 'time_total:%{time_total}\n' https://example.com/api
指标含义
time_namelookupDNS 耗时
time_connectTCP 建连耗时
time_appconnectTLS 握手耗时
time_total总耗时

先分段再定位:DNS 慢调 DNS,TCP 慢查网络,TLS 慢查证书与加密套件,别一上来就怪业务代码。


三、Charles / Fiddler 看 HTTPS ​

text
装 CA 证书 → 开启 SSL 代理 → 就能解密看明文

HTTPS 抓包靠"中间人",前提是客户端信任代理的 CA。移动端真机抓包还要配代理地址与端口,是另一层坑。


四、Wireshark 看协议 ​

场景看什么
连接失败三次握手是否完成
慢丢包重传、RTT、乱序
TLS 错误握手各阶段的 ClientHello/ServerHello
超时哪一方不再回包

五、排障套路 ​

text
① 用 curl 复现,确认能稳定/不能稳定出现
② 分段看耗时:DNS → TCP → TLS → 业务
③ 抓包对照:连接有没有建起来、谁先沉默
④ 收敛到一层,再对症处理

六、自检清单 ​

  • [ ] 会用 curl -v/-i/-w 做三段式定位
  • [ ] 能给手机配代理抓 HTTPS(含证书)
  • [ ] 能在 Wireshark 里找到三次握手
  • [ ] 能区分 DNS/TCP/TLS/业务四层耗时
  • [ ] 遇到"双方推诿"知道用抓包裁决

七、常见误区 ​

误区事实
"抓包能直接看 HTTPS"需要中间人证书,否则只见密文
"DevTools 就是抓包"它看不到连接层,TCP 问题要用 Wireshark
"看响应慢就够了"要分段定位到底慢在哪一层

八、动手练习 ​

练习 A:分段测速 ​

对一个慢接口用 curl -w 打出五段时间,写出每段对应的排障方向。

练习 B:抓一次握手 ​

Wireshark 抓访问一个网站的包,过滤 tcp.flags.syn==1,把三次握手截图标出。

练习 C:手机抓包 ​

用 Charles 给手机配代理,抓一次 App 请求,观察 HTTPS 解密后的请求头。


相关文档 ​

本区 ​

其他域 ​