命令行抓包神器 | tcpdump抓取post请求并显示详细参数
- 知识背景(diu ren 经历)
- 补充:
知识背景(diu ren 经历)
今天突然说要转一个补丁版本,将get请求改成post请求,紧急上线,要半小时搞定。
所以,需要验证3个点:
- 改为post请求后,业务功能是否正常(但是由于业务复杂,在测试环境需要一个代理转发到客户环境,但客户环境我们是没有权限访问的,也不能和客户联调。所以,并不能直接去校验这里的结果,对于该结果不能持百分百信任。于是乎有了下面两点)
- 检查下游(代理)收到的请求,method是否是post
- 检查下游(代理)收到的请求,原来放在url里的参数是否放进了body里
虽然身为一个后端测开,但是我也是个小白牙,不怕笑话,我就没用过命令行tcpdump去抓包。
开始google之旅,分三个阶段哈:
1. tcpdump抓包工具捕捉tcp请求 三次握手和四次挥手
适用场景:
问题定位:抓取tcp请求,可以定位两个服务器之间到底有没有成功建立连接哦
命令格式:
示例:
tcp抓包 :端口和网卡根据实际情况配置 (容器,idc机器都可以用)
tcpdump -i eth0 tcp and port 13011 -vvvv
显示结果包含 源IP:端口和目标IP:端口
2. tcpdump抓包工具捕捉tcp请求 并展示详细数据
适用场景:
问题定位:抓取tcp请求,可以看到请求包含的详细信息
命令格式:
示例:
tcp抓包 :端口和网卡根据实际情况配置 (容器,idc机器都可以用) -X是展示详细数据
tcpdump -i eth0 tcp and port 13011 -vvvv -X
3. tcpdump抓包工具捕捉http请求展示post的请求方式和body
适用场景:
捕捉接收到的http请求并展示post的请求方式和body
命令格式:
示例:
tcpdump -s 0 -i eth1 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504F5354'
注: eth1 是网卡(根据实际情况选择)
结果示例:
补充:
1. tcpdump抓包工具 捕捉指定端口接收到的http post请求
适用场景:
仅仅捕捉指定端口443接收到的http post请求