tcpdump四个方向图解
四个过程的tcpdump指令分别为:
a):
在src为216的机器上执行
tcpdump -i bond0 ‘dst host 192.168.101.216’ and ‘dst port 80’ -w flowdata
b):
在src为216的机器上执行
tcpdump -i bond0 ‘src host 192.168.101.216’ and ‘dst port 80’ -w flowdata
c):
在src为216的机器上执行
tcpdump -I bond0 ‘dst host 192.168.101.216’ and ‘src port 80’ -w flowdata
d):
在src为216的机器上执行
tcpdump -I bond0 ‘src host 192.168.101.216‘ and ‘src port 80’ -w flowdata
想一次拿到四个方向的请求和响应头数据:
e):
在主机为216的机器上执行
tcpdump -I bond0 ‘host 192.168.101.216’ and ‘port 80’ -w flowdata
与下面这句含义是一样的
tcpdump -i bond0 host 192.168.101.223 and tcp port 80 -w ./output2.cap
抓包解决的问题
tcpdump抓包为了抓取用户发起的自定义请求头的完整名称。由于用户使用 下划线 来作为自定义请求头各个单词间的分隔符,所以被nginx在转发过程中丢弃了
如果希望在http请求过程中,使用带下划线的自定义请求头,并能在反向代理过程中透传给上游服务器,则需要在配置中开启如下命令:
underscores_in_headers on;