以下是 tcpdump
的选项和用法,以表格形式展示:
选项 | 说明 |
---|---|
-A | 以 ASCII 格式显示数据包内容 |
-b | 打印 AS 数字 |
-B size | 设置缓冲区大小(以 KiB 为单位) |
-c count | 捕获指定数量的数据包后停止 |
--count | 与 -c 相同 |
-C file_size | 将捕获的数据包文件切分为指定大小的文件 |
-d | 将数据包显示为伪代码形式 |
-dd | 将数据包显示为 C 程序格式 |
-ddd | 将数据包显示为十进制数格式 |
-D | 列出所有可用的网络接口 |
-E algo:secret | 使用指定算法和密钥解密 IPsec 流量 |
-f | 将数据包的外部地址显示为数字格式 |
-F file | 从指定文件读取过滤器表达式 |
-G seconds | 将捕获文件按指定时间间隔轮换 |
-h | 显示帮助信息并退出 |
-H | 打印以太网头部中的 TTL 和 ID |
-I | 设置为监视模式(仅适用于无线接口) |
-j tstamptype | 设置时间戳类型 |
-J | 列出可用的时间戳类型 |
-K | 不校验 IP 和 TCP/UDP 校验和 |
-l | 将标准输出设为缓冲模式 |
-L | 显示已知的数据链路类型并退出 |
-M secret | 使用指定密钥验证 IPsec 流量 |
-n | 不解析主机名(将 IP 地址显示为数字格式) |
-N | 不打印域名部分 |
--number | 与 -c 相同 |
-O | 不进行优化 |
-p | 不置混杂模式 |
-q | 快速输出(不显示数据包的冗余信息) |
`-Q in | out |
-r file | 从文件中读取数据包 |
-R | 打开 RPC 解码 |
-s snaplen | 设置捕获的快照长度 |
-S | 打印绝对序列号 |
-t | 不打印时间戳 |
-tt | 打印完整的时间戳(秒) |
-ttt | 打印时间戳间隔(微秒) |
-tttt | 打印完整的日期和时间 |
-T type | 强制将数据包解码为指定类型 |
--time-stamp-precision precision | 设置时间戳精度(秒、微秒、纳秒) |
--micro | 使用微秒时间戳 |
--nano | 使用纳秒时间戳 |
--version | 显示版本信息并退出 |
-v | 打印更多信息(冗长模式) |
-vv | 打印更多详细信息 |
-vvv | 打印最详细的信息 |
-V file | 从指定文件中读取数据包 |
-w file | 将捕获的数据包写入文件 |
-W filecount | 在写入文件时循环使用文件名 |
-x | 以十六进制格式显示数据包内容 |
-X | 以十六进制和 ASCII 格式显示数据包内容 |
-y datalinktype | 设置数据链路类型 |
-z postrotate-command | 捕获文件轮换后的命令 |
-Z user | 设置捕获进程的用户 ID |
expression | 设置捕获过滤表达式 |
这是 tcpdump
的常见选项及其用途。根据具体需求组合使用这些选项,可以更高效地捕获和分析网络数据包。
tcpdump 表达式用于过滤捕获的数据包,确保只捕获和显示符合特定条件的数据包。这些表达式由一个或多个原子条件和布尔运算符(如 AND、OR 和 NOT)组合而成。下面详细介绍 tcpdump 表达式的用法。
tcpdump host 192.168.1.1 # host:指定的主机,例如 IP 地址或主机名
tcpdump net 192.168.1.0/24 #net:指定的网络
tcpdump port 80 #port:指定的端口号。
tcpdump src 192.168.1.1 # src:源地址。
tcpdump dst 192.168.1.1 # dst:目的地址。
# 指定协议类型
tcpdump ip
tcpdump tcp
tcpdump src 192.168.1.1 and dst port 80 # 用 and 或 &&。
tcpdump src 192.168.1.1 or dst port 80 # 用 or 或 ||
tcpdump not src 192.168.1.1 # 用 not 或 !
# 使用括号来明确表达式的优先级
tcpdump 'src 192.168.1.1 and (dst port 80 or dst port 443)'