目录
1.格式:
2.参数
3.过滤表达式:
4.示例:
tcpdump
是一款在 Unix 和类 Unix 系统上广泛使用的网络分析工具,它能够捕获网络接口上传输的数据包,并提供多种选项来过滤和展现这些数据包的详细信息。这里是 tcpdump
的一些基本用法和选项的详解.
1.格式:
tcpdump [options] [filter-expression]
2.参数
-i : 指定要监听的网卡接口。如果不指定,tcpdump 通常会选择一个默认的接口。
-n: 不解析主机名(即不进行 DNS 反向解析),直接显示 IP 地址。
-nn: 不解析主机名和端口名。
-X: 以十六进制和 ASCII 显示数据包的内容。对于调试或分析非常有用。
-XX: 与 -X 类似,但还会显示以太网头。
-v, -vv, -vvv: 增加输出的详细程度。
-c : 捕获指定数量的数据包后停止。
-s : 设置捕获数据包的长度。默认情况下,tcpdump 只捕获每个数据包的前 68 字节。设置 -s0 可以捕获整个数据包。
-w : 将捕获的数据包写入文件而不是直接显示在屏幕上。
-r : 读取并显示之前用 -w 选项保存的数据包文件。
3.过滤表达式:
过滤表达式用于定义捕获数据包时使用的规则,例如根据协议、端口、主机地址等来过滤。一些常用的表达式如下:
host : 只捕获所有发送到或从指定主机传出的 IP 数据包。
src : 只捕获从指定源主机传出的数据包。
dst : 只捕获发送到指定目的主机的数据包。
port : 只捕获指定端口的数据包。
src port : 只捕获指定源端口的数据包。
dst port : 只捕获指定目的端口的数据包。
net : 只捕获特定网络上的数据包。
proto : 只捕获指定协议的数据包,如 icmp、udp、tcp 等。
4.示例:
#捕获所有经过eth0网卡,源或目的端口443,源或目的IP为192.168.1.1的数据包
tcpdump -i eth0 -nn -X -vv tcp port 443 and ip host 192.168.1.1
#捕获所有经过 eth0 接口的 TCP 数据包
tcpdump -i eth0 tcp#捕获所有到达或离开主机 192.168.1.1 的数据包,且不进行主机名解析
tcpdump -n host 192.168.1.1#捕获指定网络上的所有数据包,并显示更多的协议信息
tcpdump net 192.168.1.0/24 -vv#实时查看经过 eth0 端口,来源或目的为 192.168.1.1 端口 22 的数据包内容
tcpdump -i eth0 -X 'host 192.168.1.1 and port 22'#捕获所有目标或源端口为 80 的数据包,并将其保存到文件中
tcpdump port 80 -w capture_file.pcap#读取并显示保存的数据包文件内容
tcpdump -r capture_file.pcap