"如何正确使用tcpdump抓包?参数全解析!"

   360SEO    

tcpdump 是一款功能强大的网络抓包工具,可以用来分析网络数据包。通过对抓包命令的参数进行详细了解,可以更好地应用tcpdump工具。

基本语法

tcpdump [选项] [表达式]

常用选项

选项 说明
i 接口名 指定抓取的网络接口,如 eth0、wlan0 等
n 不解析主机名和端口名,直接显示 IP 地址和端口号
X 以十六进制和 ASCII 码显示数据包内容
s 抓取数据包大小 指定抓取的数据包大小,默认为 65535 字节
c 抓取数据包数量 指定抓取的数据包数量,达到指定数量后停止抓取
v 显示详细信息,包括数据包的协议类型、源 IP、目标 IP、源端口、目标端口等
w 输出文件名 将抓取到的数据包保存到指定的文件中,使用 pcapng 格式
r 输入文件名 从指定的文件中读取数据包进行分析或过滤
F 过滤表达式 根据过滤表达式抓取符合条件的数据包
G 设置抓包文件的组 ID 用于在多用户环境下设置抓包文件的组 ID,避免权限问题
W 设置抓包文件的写权限掩码 用于在多用户环境下设置抓包文件的写权限掩码,避免权限问题
Z 设置抓包文件的粘滞位 用于在多用户环境下设置抓包文件的粘滞位,避免其他用户删除文件
C 设置抓包文件的创建时间戳 用于在多用户环境下设置抓包文件的创建时间戳,避免权限问题
q 静默模式,不显示任何信息
tttt 设置时间显示格式,如 hh:mm:ss.sss
e 设置数据链路层协议类型 可以指定所抓取的数据包的数据链路层协议类型,如 arp、rarp、ip、icmp、igmp、udp、tcp、raw 等
E 设置以太网帧头部类型 可以指定所抓取的数据包的以太网帧头部类型,如 arp、rarp、ip、arpwatch、llmnr 等
y 输出数据包时使用绝对时间戳 而不是相对时间戳
Q inet 仅抓取 inet 协议的数据包
q inet6 仅抓取 inet6 协议的数据包
V 显示版本信息并退出

过滤表达式

tcpdump 支持丰富的过滤表达式,可以根据源 IP、目标 IP、源端口、目标端口、协议类型等条件进行过滤。以下是一些常用的过滤表达式:

表达式 说明
host IP地址 抓取与指定 IP 地址相关的数据包
net IP地址/子网掩码 抓取与指定 IP 地址和子网掩码相关的数据包
port 端口号 抓取与指定端口号相关的数据包
src IP地址[!]dst IP地址 抓取源 IP 地址为指定值或非指定值的数据包
src host IP地址[!]dst host IP地址 抓取源主机 IP 地址为指定值或非指定值的数据包
src port[!]dst port[!]protocol 抓取源端口号为指定值或非指定值,目标端口号为指定值或非指定值,以及协议类型为指定值或非指定值的数据包
tcp[flags] = value[!]value 抓取 tcp flags(标志位)为指定值或非指定值的数据包
tcp[flags] & value[!]value 抓取 tcp flags(标志位)与指定值或非指定值进行按位与操作后结果为真(非零)的数据包
tcp[flags] != value[!]value 抓取 tcp flags(标志位)与指定值或非指定值进行按位异或操作后结果为真(非零)的数据包
tcp[((offset)>>field_length):field_length] & mask[!]mask 根据 tcp flags(标志位)的偏移量和长度,以及掩码进行按位与操作或按位异或操作后的结果进行过滤
protocol[!]protocol[^]port[!]port[^]ip[!]ip[^]host IP地址[!]host IP地址[^]net IP地址/子网掩码[!]net IP地址/子网掩码 根据协议类型、端口号、IP 地址和主机 IP 地址进行过滤,可以使用 ^(逻辑非)和 !(逻辑非)进行组合过滤
tcpdump 抓包命令 参数用法详解 tcpdump 抓包命令 参数用法详解

通过掌握基本语法和常用选项,以及灵活运用过滤表达式,您可以更好地利用 tcpdump 工具进行网络数据包的分析和过滤。如果您对 tcpdump 抓包命令的更多参数用法感兴趣,可以查阅相关文档或进行深入学习。

希望本文对您有所帮助,并能带来更多关于网络抓包和数据包分析的思考。如果您有任何问题或者对其他相关主题感兴趣,欢迎在评论区留言,让我们一起交流和探讨。

感谢您的阅读,希望能得到您的关注、点赞和分享,同时也期待您的评论和意见。谢谢!

评论留言

我要留言

欢迎参与讨论,请在这里发表您的看法、交流您的观点。