wireshark
- 1: wireshark 介绍
- 2: 安装 wireshark
- 3: filter的用法
- 3.1: filter 概述
- 4: 各种协议的抓包方式
- 4.1: 抓取 http 包
1 - wireshark 介绍
Wireshark是世界上最重要和广泛使用的网络协议分析器。它可以让你在微观层面上看到网络上发生的事情,并且是许多商业和非盈利企业、政府机构和教育机构的事实(通常也是法律)标准。Wireshark的发展得益于全球网络专家的志愿贡献,是Gerald Combs在1998年开始的项目的延续。
介绍
功能介绍
Wireshark具有丰富的功能,包括以下内容:
- 对数百种协议进行深入探查,并不断增加更多的协议
- 实时捕获和离线分析
- 标准的三窗体数据包浏览器
- 多平台。可在Windows、Linux、macOS、Solaris、FreeBSD、NetBSD和其他许多平台上运行
- 捕获的网络数据可以通过GUI或TTY模式的TShark工具进行浏览
- 行业中最强大的显示过滤器
- 丰富的VoIP分析
- 读取/写入许多不同的捕获文件格式。tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (compressed and uncompressed), Sniffer® Pro, and NetXray®, Network Instruments Observer, NetScreen snoop, Novell LANalyzer, RADCOM WAN/LAN Analyzer, Shomiti/Finisar Surveyor, Tektronix K12xx, Visual Networks Visual UpTime, WildPackets EtherPeek/TokenPeek/AiroPeek, 和许多其他产品。
- 用gzip压缩的捕获文件可以在运行中解压缩
- 可以从以太网、IEEE 802.11、PPP/HDLC、ATM、蓝牙、USB、令牌环、帧中继、FDDI等读取实时数据(取决于您的平台)
- 支持许多协议的解密,包括IPsec、ISAKMP、Kerberos、SNMPv3、SSL/TLS、WEP和WPA/WPA2
- 着色规则可应用于数据包列表,以进行快速、直观的分析
- 输出可以导出为XML、PostScript®、CSV或纯文本
资料
官方资料
https://www.wireshark.org/#learnWS
- 培训
- 用户文档
- 开发文档
- 各种视频和演讲
2 - 安装 wireshark
安装
安装最新稳定版本
ubuntu 下可以直接安装,但默认的版本是3.2.3,发布于2019年,而最新的版本是 3.6.3。
参考官方文档: https://launchpad.net/~wireshark-dev/+archive/ubuntu/stable
安装最新稳定版本:
sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt install wireshark
但这个方式安装下来的版本是 3.4.8-1
$ apt-cache madison wireshark
wireshark | 3.4.8-1~ubuntu20.04.0+wiresharkdevstable1 | http://ppa.launchpad.net/wireshark-dev/stable/ubuntu focal/main amd64 Packages
wireshark | 3.2.3-1 | http://mirrors.aliyun.com/ubuntu focal/universe amd64 Packages
安装最新开发版本
如果要安装最新的dev版本,可以考虑从源码编译,参考:
https://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireshark.html
但这个实在麻烦了一点。好在ubuntu下有ppt:
sudo add-apt-repository ppa:dreibh/ppa
sudo apt update
sudo apt -y install wireshark
最新的开发版本已经是 3.7.0 了:
$ apt-cache madison wireshark
wireshark | 3.7.0+git20220406073638~7adc301d-1ppa~focal1 | http://ppa.launchpad.net/dreibh/ppa/ubuntu focal/main amd64 Packages
wireshark | 3.4.8-1~ubuntu20.04.0+wiresharkdevstable1 | http://ppa.launchpad.net/wireshark-dev/stable/ubuntu focal/main amd64 Packages
wireshark | 3.2.3-1 | http://mirrors.aliyun.com/ubuntu focal/universe amd64 Packages
配置
允许非超级用户捕获数据包
启动时提示是否允许非超级用户捕获数据包:
按照提示操作:
sudo dpkg-reconfigure wireshark-common
选择 yes,然后将自己加入到 wireshark group:
sudo usermod -a -G wireshark $USER
注销账号再重新登录。
参考资料
3 - filter的用法
4 - 各种协议的抓包方式
4.1 - 抓取 http 包
抓取本地http包
目标是抓取访问 http://localhost:1313/ 地址的HTTP包,设置中选择 “Loopback: lo”, filter 设置为 http and tcp.port=1313
:
以下是抓取多次 http 交互的一个例子,这是 dapr java-sdk 中的一个bug,当时排查时发现 https://github.com/dapr/java-sdk/issues/709: