tcpdump 抓包工具使用

时间:2022-06-08 10:14:29

1. 常用命令

监听p4p1网卡上来自 192.168.162.14 的包

tcpdump -i p4p1 src host 192.168.162.14

tcpdump -i p4p1 dst port 5060 and udp -s 0 -w aaa.pcap
tcpdump -i p4p1 src host 192.168.162.14 and dst port 5060 and udp -s 0 -w aaa.pcap
tcpdump -i p4p1 dst host 192.168.162.14 and dst port 5060 and tcp -s 0 -w aaa.pcap
tcpdump -i p4p1 src host 192.168.162.14 and udp port 5060 -s 0 -w aaa.pcap

tcpdump -i p4p1 host 192.168.162.14 and 192.168.162.18

tcpdump ip host 210.27.48.1 and ! 210.27.48.2

tcpdump -i eth0 src host hostname

tcpdump -i eth0 dst host hostname

转自:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

2. tcpdump 丢包问题解决

  • 最小化抓取过滤范围,即通过指定网卡,端口,包流向,包大小减少包数量
  •  添加-n参数,禁止反向域名解析

    tcpdump -i eth0 dst port 1234 and udp -s 2048 -n -X -tt >a.pack

    大多数情况这样就可以解决了

    可以通过改善tcpdump上层的处理效率来减少丢包率

  • 将数据包输出到cap文件

  tcpdump -i eth0 dst port 1234 and udp -s 2048 -n -X -tt -w a.cap

  用了这一步,基本上所有的网络server都可以搞定了

  •  用sysctl修改SO_REVBUF参数,增加libcap缓冲区长度

  这一步是绝招了,由于设计内核参数修改,尽量不要使用,要用了不行,那就没办法了