tcpdump 和 Wireshark 是最常用的网络抓包和分析工具,作为经常和网络打交道的划水选手,怎么能不了解下呢?补篇博文回顾下相关操作。这里以 example.com 的一次 GET 请求为例,先使用 tcpdump 抓个包,再使用 Wireshark 看下 TCP 的握手。
操作环境:WSL2(Ubuntu 20.04 LTS) + Windows 10
用 tcpdump 抓个包
先在 WSL2 Ubuntu 安装下 tcpdump。
1  | 启动 wsl  | 
抓包需要使用两个终端,一个终端使用 curl 向 example.com 发送请求,一个用于 packets 的抓取。OK,抓包开始:
1、一个终端使用 tcpdump 监听 example.com。
1  | terminal 1,监听 example.com 的网络包  | 
2、另一个终端使用 curl 发送网络请求。
1  | terminal 2,发送网络请求  | 
请求发送完毕后,Ctrl + C 终止终端 1 的监听,将抓取结果 wep.pcap 拷贝到 Windows 10 桌面。
1  | mv web.pcap /mnt/c/Users/yeshan/Desktop/web.pcap  | 

拿 Wireshark 看下包
由于 tcpdump 的输出格式并不直观,所以之前将抓取结果写入到 web.pcap。然后这里使用有图形化界面的 Wireshark 去看下刚刚抓下来的网络包 web.pcap。
- 下载安装 Wireshark:https://www.wireshark.org/download.html
 
1、使用 Wireshark 打开 web.pcap。

2、使用 Wireshark 的统计工具可以看到 TCP 握手的流程。分析->流量图
1  | 确定 example.com ip  | 


完美,可以看到经典的 TCP 握手过程。「TCP三次握手,四次挥手:」

很香的是 Wireshark 提供了许多示例网络包『SampleCaptures
』,计网学习新世界?