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 命令时,要遵守当地的网络安全法律法规,不得非法抓包。