一、采用命令行方式对接口的数据包进行筛选抓取。

         不带任何选项的tcpdump ,默认抓取第一个网络接口。只有将tcpdump进程终止,抓包停止。

二、选项

tcpdump的选项与含义
-c指定抓取包的数量,即最后显示的数量
-i

指定tcpdump监听的端口。未指定,选择系统中最小的以配置端口。

-i any:监听所有网络端口 -i lo:监听lookback接口。

-nn对监听地址以数字方式呈现,且对端口也以数字方式呈现。如果不指定 ,地址以主机名方式呈现,端口以服务名方式呈现
-P指定要抓取的包是流入还是流出 (in out inout[默认])
-s 设置tcpdump的数据包抓取长度,默认为65535字节。
-e输出的每行都包含数据链路层的头部信息。
-D列出所有可以用于抓包的表达式。
-X显示协议头和包的全部内容。
-F从文件中读取抓包的表达式。

三、例子

(1)tcpdump -i eth0 host 192.168.1.1 【过滤主机】

         注:抓取所有经过网卡1,目的ip为192.168.1.1

(2)tcpdump -i  eth0 dst port 22 【过滤端口】

       注:抓取所有经过网卡1,目的端口为22的网络数据

(3)tcpdump -i eth0 udp 【过滤协议】

       注;抓取所有经过网卡1,协议为UDP的协议。

(4)tcpdupmp -i lo udp 【抓取本地环路数据包】

(5)特定协议特定端口

           tcpdump udp port 22

(6)抓取特定类型的数据包

           tcpdump -i eth0 'tcp[tcpflags] = tcp-syn' (抓取所有经过网卡1的SYN类型的数据包)

          tcpdump -i eth0 udp dst port 53(抓取经过网卡1的所有DNS数据包)

(7)逻辑语句过滤

          tcpdump -i eth0 '((tcp) and ((dst net 192.168.0) and (not dst host 192.168.0.2)))'

         注:抓取所有经过网卡1,目的网络是192.168.0,但目的主机不是192.168.0.2的TCP数据。   

(8)抓包存取

       tcpdump -i eth0 host 192.168.1.51 and port 22 -w /tmp/tcpdump.cap

       注:抓取所有经过网卡1,目的主机为192.168.1.51的网络数据并存储。       

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐