1 - wireshark 介绍

Wireshark是广泛使用的网络协议分析器

Wireshark是世界上最重要和广泛使用的网络协议分析器。它可以让你在微观层面上看到网络上发生的事情,并且是许多商业和非盈利企业、政府机构和教育机构的事实(通常也是法律)标准。Wireshark的发展得益于全球网络专家的志愿贡献,是Gerald Combs在1998年开始的项目的延续。

介绍

https://www.wireshark.org/

功能介绍

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 上安装 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

配置

允许非超级用户捕获数据包

启动时提示是否允许非超级用户捕获数据包:

permisions

按照提示操作:

sudo dpkg-reconfigure wireshark-common

configure

选择 yes,然后将自己加入到 wireshark group:

sudo usermod -a -G wireshark $USER

注销账号再重新登录。

参考资料

3 - filter的用法

wireshark filter 的用法

3.1 - filter 概述

wireshark filter 概述

参考资料

4 - 各种协议的抓包方式

wireshark 各种协议的抓包方式

4.1 - 抓取 http 包

在 ubuntu 上安装 wireshark 抓取 http 包

抓取本地http包

目标是抓取访问 http://localhost:1313/ 地址的HTTP包,设置中选择 “Loopback: lo”, filter 设置为 http and tcp.port=1313:

http-local

以下是抓取多次 http 交互的一个例子,这是 dapr java-sdk 中的一个bug,当时排查时发现 https://github.com/dapr/java-sdk/issues/709

http-example