很多时候,开发或者产品不一定能给出很规范的接口或者相关文档,搞不好有些都只是通过口头传递信息,此时,我们就需要掌握独立抓包分析请求的方法,避免被动的等待,像我工作中就遇到过,请求时基于 soap 协议的,是一个硬件网关设备和平台的交换,一个事件就包含多次的交互,我就是利用抓包进行分析和模拟请求的。
核心思路
服务基本上都是部署在 Linux 上,在 Linux 下,当我们需要抓取网络数据包分析时,通常是使用 tcpdump 抓取网络 raw 数据包存到一个文件,然后下载到本地使用 wireshark 界面网络分析工具进行网络包分析。
tcpdump 使用
tcpdump 是一款非常强大的网络抓包工具,可以在网络问题的分析中提供很多有用的信息,适用场景丰富。tcpdump 的使用简单易上手,它的命令格式如下:
tcpdump [-adeflnNOpqStvx][-c][-dd][-ddd][-F][-i][-r][-s][-tt][-T]
[-vv][-w][输出数据栏位]
其他常用参数的说明:
-c:指定要抓取的包数量。
-i:interface:指定tcpdump需要监听的接口。
-n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。
-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。
-s: 设置每个数据包的大小。
-N:不打印出host的域名部分。
-P:指定要抓取的包是流入还是流出的包。可以