tcpdump的使用详解

8 min read

tcpdump 是一种网络数据包抓取工具,用于在 Linux 系统上监听和捕获网络流量。它能够捕获网络包,输出它们的内容,保存它们到文件中,并支持多种过滤规则。

以下是 tcpdump 常用的选项和命令:

常用选项

  • -i interface: 设置监听的网络接口
  • -n: 禁用 DNS 解析,只显示 IP 地址
  • -v: 显示详细的信息,如协议头和标识符
  • -c count: 指定抓取数据包的数量
  • -w file: 将数据包保存到文件中
  • -r file: 从文件中读取数据包
  • -s size: 指定每个数据包抓取的字节数
  • -q: 禁止打印解析信息
  • -e: 打印以太网头部信息
  • -X: 打印十六进制和ASCII格式的数据包内容
  • -A: 输出以ASCII码打印出捕获的网络数据

常用命令

  • tcpdump: 默认以实时模式抓取网络数据包
  • tcpdump -i eth0: 监听 eth0 网络接口
  • tcpdump -c 10: 抓取10个数据包
  • tcpdump -w file: 将抓取的数据包保存到文件中
  • tcpdump -r file: 从文件中读取数据包
  • tcpdump -nn: 禁用DNS解析,只显示IP地址
  • tcpdump -XX: 打印十六进制和ASCII格式的数据包内容
  • tcpdump -nne: 打印以太网头部信息,禁止DNS解析,输出详细信息

常见过滤器

  • host [ip]: 捕获指定IP的数据包
  • src [ip]: 捕获源IP为指定IP的数据包
  • dst [ip]: 捕获目标IP为指定IP的数据包
  • port [port]: 捕获目标端口或源端口为指定端口的数据包
  • tcp: 捕获 TCP 协议数据包
  • udp: 捕获 UDP 协议数据包
  • icmp: 捕获 ICMP 协议数据包

例如,监听 eth0 接口上的 ICMP 数据包:

tcpdump -i eth0 icmp

使用过滤器捕获源IP地址为 192.168.1.100 的 TCP 数据包:

tcpdump -i eth0 src 192.168.1.100 tcp

捕获目标端口为 80 的 UDP 数据包:

tcpdump -i eth0 udp port 80

tcpdump 是一个强大而灵活的工具,能够帮助网络管理员更好地理解和调试网络流量。学习它的使用方法将会使你更加熟练。