Linux tcpdump命令详解

Linux 的 tcpdump 命令是网络抓包的利器,可以捕获并显示经过网络接口的数据包,用于网络故障诊断、协议开发等。下面是 tcpdump 命令的使用详解:

1.基本使用格式:

tcpdump [ -i <interface> ] [ -n ] [ -X ] [ -vv ] [ -s <snaplen> ] [ -w <outfile> ] <expression>

参数说明:
-i:指定监听的网卡接口
-n:不将地址解析为主机名
-X:以十六进制和 ASCII 码形式显示数据包
-vv:输出详细的数据包信息
-s:指定捕获数据包时的最大长度
-w:将捕获的数据包保存到指定的文件
:指定过滤表达式

2.常用的过滤表达式:

  • host:过滤指定主机的数据包,如:tcpdump host 192.168.1.100
  • port:过滤指定端口的数据包,如:tcpdump port 80
  • src:过滤源地址为指定地址的数据包,如:tcpdump src 192.168.1.100
  • dst:过滤目标地址为指定地址的数据包,如:tcpdump dst 192.168.1.100
  • tcp:过滤 TCP 数据包
  • udp:过滤 UDP 数据包
  • icmp:过滤 ICMP 数据包

3.示例:

  • 监听 eth0 网卡接口上所有的数据包并显示详细信息:tcpdump -i eth0 -vv
  • 监听 eth0 网卡接口上所有的 TCP 数据包并显示详细信息:tcpdump -i eth0 -vv tcp
  • 监听 eth0 网卡接口上源地址为 192.168.1.100 的所有数据包并以十六进制和 ASCII 码形式显示:tcpdump -i eth0 -n -X src 192.168.1.100
  • 监听 eth0 网卡接口上源地址为 192.168.1.100 目标地址为 192.168.1.200 的所有 TCP 数据包并将捕获的数据包保存到文件中:tcpdump -i eth0 -n -w capture.pcap src 192.168.1.100 and dst 192.168.1.200 and tcp

以上是 tcpdump 命令的基本使用方法和常用的过滤表达式,还有一些高级用法和参数可供探索。需要注意的是,在使用 tcpdump 命令时,要遵守当地的网络安全法律法规,不得非法抓包。