Wireshark是什么?为什么你需要它
如果你经常遇到网页加载慢、视频卡顿、或者公司内网突然上不了某个网站,光靠刷新浏览器解决不了问题。这时候就得看数据包怎么跑的。Wireshark就是干这个的——它能抓取网络中传输的所有数据包,让你像看监控录像一样查看网络通信全过程。
安装Wireshark:别跳过这一步
去官网下载对应系统的版本,Windows用户直接运行安装包,记得勾选“Install Npcap”——这是抓包用的底层驱动,不装它,Wireshark就是个空壳。Mac和Linux用户可以用Homebrew或apt-get安装,命令行执行:
brew install wireshark
装完打开软件,你会看到一堆网卡列表,选你现在上网用的那个,比如“WLAN”或者“以太网”,点一下就开始抓包了。
开始抓包:别被满屏数据吓到
点击左上角绿色鲨鱼图标,Wireshark立刻开始捕获数据。屏幕上会疯狂滚动各种IP地址和协议名称,看起来像天书。别慌,先访问一个简单网站,比如百度。等页面加载完,点红色方块停止抓包。
这时你可以在过滤栏输入 http,回车后就只留下HTTP流量。找到目标域名的那一行,双击进去看详情。你会发现三次握手的过程:SYN → SYN-ACK → ACK,这就是TCP建立连接的标准流程。
过滤器怎么写?实用示例在这
满屏数据没法看,得靠过滤器缩小范围。常用写法:
ip.addr == 192.168.1.100—— 只看和这个IP通信的数据tcp.port == 80—— 只看80端口的流量http.host contains "baidu"—— 找访问百度的请求!(arp or dns)—— 排除干扰项,专注看应用层数据
把这些组合起来用,比如 http && ip.addr == 192.168.1.105,就能精准定位某台设备的网页请求。
分析HTTPS流量?需要提前准备
现在大部分网站都用HTTPS,Wireshark默认看不到加密内容。想解密,得让浏览器把密钥导出来。在Firefox或Chrome里设置环境变量 SSLKEYLOGFILE,指向一个本地文件路径。重启浏览器,访问任意HTTPS网站,密钥就会自动写入那个文件。
回到Wireshark,在“编辑→首选项→Protocols→TLS”里指定该文件路径。再抓包时,只要证书有效,你就能看到明文的HTTPS请求和响应内容,包括URL、Cookie、POST数据等。
实战案例:网页打不开,到底卡在哪
同事说公司后台系统打不开,你打开Wireshark抓包一看,发现DNS解析正常,IP也拿到了,但TCP一直发SYN,对方不回SYN-ACK。这说明服务器没响应,问题不在客户端。换个时间再试,发现能连上,基本判断是服务器负载过高或防火墙临时拦截。
又有一天,APP上传图片失败。抓包发现请求发出去了,服务器返回413 Payload Too Large。翻文档才知道限制是5MB,用户传了个8MB的图。这种问题日志里不一定有记录,但从网络层一眼就能看出原因。
小心使用,别踩法律红线
Wireshark能看局域网所有流量,但不代表你可以随便抓别人的数据。在公司网络抓包前一定要获得授权,私自监听他人通信可能违反《网络安全法》。自己家用倒没问题,但也要注意别把敏感信息(比如账号密码)截图发到社交平台。
小技巧提升效率
右键数据包选择“Follow → TCP Stream”,能还原完整的会话内容,适合看API调用过程。导出功能支持保存为PCAP格式,方便给开发同事复现问题。还可以用颜色规则标记异常流量,比如重传多的包标成红色,一眼就能发现网络不稳定。