在测试数据流相关场景时经常遇到管理端页面不展示子系统推送数据问题,此时我们可以登录管理端的后台,通过tcpdump来定位数据是否发送到了管理端;本文章使用ubuntu20.0.4系统进行演示,操作系统内置了tcpdump命令
1.首先确认子系统将数据推送到哪张网卡,已知晓子系统会将数据发到eth0;通过ip a 命令查看,可以查看所有网卡
2.使用命令 tcpdump -i eth0 -vv 可以查看网卡下的所有流量
3.如想查看子系统172.16.16.211 是否有流量推送管理端,使用命令 tcpdump -i eth0 host 172.16.16.211 -vv
分析结果:
通过抓包可以看到管理端未收到子系统推送的流量,管理端页面不显示数据属于正常现象,后续由子系统相应人员分析。
测试过程中常用tcpdump命令:
抓取所有的网络包,并存到 result.pcap 文件中。
tcpdump -w result.pcap
抓取指定网卡的网络包
tcpdump -i eth0
抓取指定网卡的网络包并打印包详情
tcpdump -i eth0 -vv
抓取地址包含是192.168.1.100的包
tcpdump host 192.168.1.100
抓取源地址是192.168.1.100的包
tcpdump src host 192.168.1.100
抓取目的地址包含是192.168.1.100的包
tcpdump dest host 192.168.1.100
抓取网卡eth0上所有包含端口22的数据包
tcpdump -i eth0 port 22
抓取指定协议格式的数据包,协议格式可以是「udp,icmp,arp,ip」中的任何一种,例如以下命令:
tcpdump udp -i eth0 -vv
抓取ip是192.168.1.100且端口是22的数据包
tcpdump -i eth0 host 192.168.1.100 and port 22