tcpdump 基本用法

2020-05-30  本文已影响0人  自律给我自由07

tcpdump 是一个linux下的抓包工具,基于libpcap。基础的命令如下:

tcpdump -i interface proto-dir-type-filterExpr -w savefile

其中 -i 后面的参数是网络接口,-w 后面是要保存的文件名。
整个抓包命令的关键,就是写一个过滤表达式,拿到你需要的包。
tcpdump 还有很多其他命令,但我基本不用所以本文不介绍。

基于场景的过滤表达式

过滤表达式的一般规则:

基于协议过滤

tcpdump -i eth0 tcp/udp/arp/ip -w savefile

基于 IP 地址过滤

tcpdump -i eth0 host A -w savefile
tcpdump -i eth0 src host A -w savefile
tcpdump -i eth0 dst host A -w savefile
tcpdump -i eth0 net A -w savefile

基于端口过滤

tcpdump -i eth0 src port 80 -w savefile
tcpdump -i eth0 dst port 80 -w savefile
tcpdump -i eth0 src port sport and dst port dport -w savefile
tcpdump -i eth0 portrange 6000-8000 -w savefile

其他

man pcap-filter
tcpdump -D
tcpdump -c 100
# 针对每一个包,截取开头多少个字节
# 目的是:限制抓包大小,提高后续分析效率;
# 分析网络问题,很多时候只要一个包头就够了,内容是不需要的
tcpdump -s 80
# tcpdump 抓包结束后,会显示有多少收到的包被 drop,往往是因为 tcpdump buffer 不够
# 解决方案:增加过滤条件,或者限制每个包的大小
XXX packets dropped by kernel
# 包太大以后,有时用wireshark都不能打开,这时就要把包分割成多个小包
tcpdump -r zhuabao.pcap -w newfile -C packetSize
上一篇 下一篇

猜你喜欢

热点阅读