tcpdump 和 Wireshark 是最常用的网络抓包和分析工具,作为经常和网络打交道的划水选手,怎么能不了解下呢?补篇博文回顾下相关操作。这里以 example.com 的一次 GET 请求为例,先使用 tcpdump 抓个包,再使用 Wireshark 看下 TCP 的握手。
操作环境:WSL2(Ubuntu 20.04 LTS) + Windows 10
先在 WSL2 Ubuntu 安装下 tcpdump。
# 启动 wsl
wsl
# 安装 tcpdump
apt-get install tcpdump
抓包需要使用两个终端,一个终端使用 curl 向 example.com 发送请求,一个用于 packets 的抓取。OK,抓包开始:
1、一个终端使用 tcpdump 监听 example.com。
# terminal 1,监听 example.com 的网络包
tcpdump -nn host example.com -w web.pcap
2、另一个终端使用 curl 发送网络请求。
# terminal 2,发送网络请求
curl example.com
请求发送完毕后,Ctrl + C
终止终端 1 的监听,将抓取结果 wep.pcap
拷贝到 Windows 10 桌面。
mv web.pcap /mnt/c/Users/yeshan/Desktop/web.pcap
由于 tcpdump 的输出格式并不直观,所以之前将抓取结果写入到 web.pcap。然后这里使用有图形化界面的 Wireshark 去看下刚刚抓下来的网络包 web.pcap。
1、使用 Wireshark 打开 web.pcap。
2、使用 Wireshark 的统计工具可以看到 TCP 握手的流程。分析->流量图
# 确定 example.com ip
$ dig +short example.com
93.184.216.34
完美,可以看到经典的 TCP 握手过程。「TCP三次握手,四次挥手:」
很香的是 Wireshark 提供了许多示例网络包『SampleCaptures 』,计网学习新世界?