Tcpdump抓包命令详解
一、采用命令行方式对接口的数据包进行筛选抓取。不带任何选项的tcpdump ,默认抓取第一个网络接口。只有将tcpdump进程终止,抓包停止。二、选项选项含义-c指定抓取包的数量。即最终获取的包,真实获取的包是10个。即只有10个包满足条件。不一定只抓取了10个包。-i指定tcpdump需要监听的接口。未指定将在系统接口列表中搜寻编号最小的最小已配置接口。-i any (所有网络接口) -i lo
一、采用命令行方式对接口的数据包进行筛选抓取。
不带任何选项的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的网络数据并存储。
更多推荐
所有评论(0)