tcpdump是Linux下的一个网络数据采集分析工具,也就是常说的抓包工具
tcpdump 核心参数
tcpdump [option] [proto] [dir] [type]
例如:
$ tcpdump -i eth0 -nn -s0 -v port 80
-
option 可选参数:
-
-i : 选择要捕获的接口,通常是以太网卡或无线网卡,也可以是 vlan 或其他特殊接口。如果该系统上只有一个网络接口,则无需指定。
-
-nn : 单个 n 表示不解析域名,直接显示 IP;两个 n 表示不解析域名和端口。这样不仅方便查看 IP 和端口号,而且在抓取大量数据时非常高效,因为域名解析会降低抓取速度。
-
-s0 : tcpdump 默认只会截取前 96 字节的内容,要想截取所有的报文内容,可以使用 -s number, number 就是你要截取的报文字节数,如果是 0 的话,表示截取报文全部内容。
-
-v : 使用 -v,-vv 和 -vvv 来显示更多的详细信息,通常会显示更多与特定协议相关的信息。
-
port 80 : 这是一个常见的端口过滤器,表示仅抓取 80 端口上的流量,通常是 HTTP。
-
-e : 显示数据链路层信息。默认情况下 tcpdump 不会显示数据链路层信息,使用 -e 选项可以显示源和目的 MAC 地址,以及 VLAN tag 信息
-
-w
参数后接一个以.pcap
后缀命令的文件名,就可以将 tcpdump 抓到的数据保存到文件中。 -
使用
-r
是从文件中读取数据。-
tcpdump icmp -w icmp.pcap tcpdump icmp -r all.pcap
-
-
-v
:产生详细的输出. 比如包的TTL,id标识,数据包长度,以及IP包的一些选项。同时它还会打开一些附加的包完整性检测,比如对IP或ICMP包头部的校验和。 -
-vv
:产生比-v更详细的输出. 比如NFS回应包中的附加域将会被打印, SMB数据包也会被完全解码。 -
-A
:以ASCII码方式显示每一个数据包(不显示链路层头部信息). 在抓取包含网页数据的数据包时, 可方便查看数据 -
-l
: 基于行的输出,便于你保存查看,或者交给其它工具分析
-