wireshark是什么,它是一款开源免费的网络抓包软件,能够捕获网卡经过的数据包,解析TCP、UDP、HTTP等上百种网络协议,适合运维、开发、网络安全人员排查网络延迟、丢包、接口异常问题,普通用户仅适合学习网络原理,不允许在未授权的网络环境中抓取他人流量,未授权抓包属于违规行为。
wireshark核心功能
它可以监听本机有线网卡、无线网卡以及虚拟网卡的流量,捕获的数据会按时间顺序展示,每一条数据包都会标注源地址、目标地址、协议类型、数据包长度。自带协议解析器,不用手动翻译二进制数据,点开单条报文就能看到请求内容、响应字段、端口信息,你还能设置过滤表达式,快速筛出目标IP或者目标端口的流量,减少无关数据包干扰。
过滤是它最常用的能力,分为显示过滤器和捕获过滤器,捕获过滤器会在抓包阶段直接丢弃不符合条件的包,节省磁盘空间;显示过滤器只在界面隐藏无关包,原始数据依旧保存在抓包文件里,调试的时候优先使用显示过滤器,避免漏掉需要复盘的报文。
wireshark基础操作流程
打开软件后先在网卡列表选中需要监听的网卡,点击鲨鱼图标启动抓包,复现你要排查的网络问题,问题复现完成后再次点击图标停止抓包,接着输入过滤语句定位目标流量,找到异常报文后查看报文详情,最后可以保存pcap格式抓包文件,发给其他人员协同分析。
常用过滤语句有固定写法,ip.addr用来筛选IP,tcp.port用来筛选端口,http用来筛选网页流量,多个条件之间可以用and、or拼接,语句写错时输入框会变成红色,语句合法时输入框背景转为绿色,这个颜色提示可以帮你快速判断表达式是否生效。
抓包文件格式为pcapng,兼容绝大多数网络分析工具,你可以拆分、合并抓包文件,也可以导出选中的数据包,单独提取里面的图片、文本、传输文件。
wireshark适用边界
它只能捕获经过所选网卡的流量,无法直接抓取交换机其他端口的流量,想要抓取局域网内其他设备流量,需要交换机开启端口镜像,或者在网关位置部署抓包。
加密流量比如HTTPS,默认只能看到握手信息,看不到明文请求内容,想要解密HTTPS报文,需要配置浏览器密钥日志文件,再导入wireshark加载密钥,才能还原加密后的应用层数据。
不要随意抓包。
它不能直接修改数据包,如果你需要发送自定义报文,需要搭配配套工具tshark或者scapy,wireshark本身定位是观测分析,不具备报文篡改和主动发包的能力。
wireshark与同类工具对比
| 工具 | 授权方式 | 主要优势 | 局限 |
|---|---|---|---|
| wireshark | 开源免费 | 协议库丰富,跨平台,社区资料多 | 无内置发包篡改能力 |
| tcpdump | 开源免费 | 命令行,适合服务器无图形环境 | 报文阅读门槛高,解析交互弱 |
| 商业抓包工具 | 付费 | 自带高级报表、自动化分析 | 成本较高 |
它附带命令行工具tshark,功能和图形界面版本一致,适合写脚本自动抓包、批量解析抓包文件,运维自动化场景里经常会用到tshark替代图形界面版本。