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 』,计网学习新世界?