循序渐进教你学运维-基础命令篇6
linux基础命令—tcpdump
tcpdump:命令行的抓包工具。
格式:tcpdump [options] [表达式]
optinos选项
-i any:监听所有网络接口
-i eth0:监听指定的网络接口(eth0)
-D:列出所有可用的网络接口
-n:不解析主机名
-nn:不解析主机名和端口名
-q:输出较少的信息
-t:更便于阅读的时间戳输出
-tttt:最便于阅读的时间戳输出
-X:以 HEX 和 ASCII 模式输出数据包的内容
-XX:与 -X 选项相同,同时还输出 ethernet 头
-v, -vv, -vvv:输出更多数据包的信息
**-c:**获取到指定数目的数据包后就停止
-s:定义 snaplength (size) ,-s0 表示获取全部
-S:输出绝对序列号
-e:获取 ethernet 头信息
-E:通过提供 key 来解密 IPSEC 流量
-w /tmp/xxx.pcap :指定抓包的结果保存到具体文件
表达式:
通过表达式可以对各种不同类型的网络流量进行过滤,以获取到需要的信息。这也是 tcpdump 强大功能的一个体现。
主要有 3 种类型的表达式:
Type(类型)选项包括 host 、net 和 port
Direction(方向)选项包括 src 和 dst 以及它们的组合
Proto(协议)包括 tcp 、udp 、ICMP 和 ah 等
举例
# tcpdump -i eth0 -c 10 -w /tmp/icmp.pcap icmp #抓icmp包
# tcpdump -i eth0 -c 10 -w /tmp/icmp.pcap port 80 #抓tcp 80的包