抓包软件
作者:综合 来源:时尚 浏览: 【大 中 小】 发布时间:2026-10-17 06:09:00 评论数:
Wireshark 打开的抓包软件那一瞬间,网卡像被扒开了胸腔。抓包软件所有经过的抓包软件数据包排着队从屏幕上滚过去,密密麻麻的抓包软件十六进制数字,夹杂着 IP 地址和端口号。抓包软件我第一次用的抓包软件时候盯着看了十分钟,完全不知道自己在看什么。抓包软件但就是抓包软件那种"原来网络底层长这样"的冲击感,让我把这款软件留在了电脑里。抓包软件
抓包这件事,抓包软件说白了就是抓包软件让网卡进入一种叫"混杂模式"的状态。正常情况下,抓包软件网卡只接收发给自己的抓包软件数据帧,别的抓包软件直接丢掉。混杂模式一开,抓包软件同一网络段里跑的所有流量它都照单全收。这也是为什么在公共 WiFi 下抓包要格外小心——你抓到的可能不只是自己的数据。
我拿它干过最实用的一件事,是排查一个接口超时的问题。前端调后端,偶尔卡住三十秒才返回。看日志一切正常,服务端处理时间只有几十毫秒。后来用 Wireshark 抓了一次,发现 TCP 握手之后,客户端发完请求,服务端过了整整 29 秒才回 ACK。问题不在代码,在中间某一跳的网络设备上。这种东西,不打日志不加监控,光靠猜根本猜不出来。
tcpdump 是另一个路子。没有图形界面,纯命令行,但在服务器上跑特别合适。一条 tcpdump -i eth0 port 8080 -w capture.pcap,挂在那里慢慢抓,回头把 pcap 文件拉到本地用 Wireshark 分析。生产环境不可能让你装图形界面,tcpdump 就是干这个用的。参数不多,常用的就那么几个:指定网卡、指定端口、指定主机、写入文件。记住这些基本够用了。
抓 HTTPS 流量是另一回事。TLS 加密之后,Wireshark 看到的全是乱码,只能看到握手过程里的证书信息。想看明文,得在客户端配置 SSLKEYLOGFILE 环境变量,让浏览器把会话密钥导出来,再在 Wireshark 里指定这个文件的路径。Chrome 和 Firefox 都支持这个机制。配好之后,HTTP/2 的帧结构、请求头、响应体,全都能看到。调试 API 的时候比看浏览器开发者工具还细——毕竟 DevTools 有时候会帮你"美化"一些东西,抓包看到的才是原始模样。
Fiddler 和 Charles 走的是代理路线。手机连上电脑的代理,所有请求都从中间过一道。好处是配置简单,手机上不用装证书就能看 HTTP;要看 HTTPS 就得装根证书,装完之后抓包跟看明文一样。坏处也明显——只抓 HTTP/HTTPS,别的协议一概不管。而且代理本身可能改变一些行为,比如连接复用、超时设置,测出来的结果跟真实环境有偏差。
选哪个工具,看你干什么活。排查网络层问题,Wireshark 和 tcpdump 是首选。调 API、看请求响应,Fiddler 和 Charles 更顺手。想抓移动端 App 的流量,mitmproxy 值得一试,Python 脚本可以自定义拦截逻辑,灵活度很高。
抓包这件事有个副作用:你会开始怀疑一切"网络慢"的抱怨。很多时候不是带宽不够,是 DNS 解析慢、TCP 重传、或者某个中间设备在抽风。这些在应用层日志里完全看不见,只有把包摊开来看,才知道数据到底卡在哪一步。
