您的当前位置:首页正文

Linux命令-tcpdump抓包

来源:华拓网

介绍

Linux一款强大的网络抓包工具,通过它可以分析网络问题,可以捕获网络数据包的数据,方便我们得到我们想要的东西。

语法

# tcpdump -h
tcpdump version 4.1-PRE-CVS_2012_03_26
libpcap version 1.4.0
Usage: tcpdump [-aAdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
                [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
                [ -i interface ] [ -M secret ] [ -r file ]
                [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ]
                [ -y datalinktype ] [ -z command ] [ -Z user ]
                [ expression ]

参数说明

这里只是列举常用的参数说明:

  • -s 默认截取前 96 字节的内容,一般用-s 0来截取所有内容。
  • -X 同时用 hex 和 ascii 显示报文的内容。
    -XX 同 -X,但多显示了以太网头部。
  • -n 表示不要解析域名,直接显示 ip。
  • -nn 不要解析域名和端口
  • -v, -vv, -vvv:显示更多的详细信息。一般我用-vvv显示越详细的信息
  • -i 网卡名字 :获取指定的网卡的数据包;
    -i eth0 监听eth0网卡,其中网卡名字可以通过/sbin/ifconfig -a获得
    -i any 监听所有的网卡
  • -w<数据包文件>:把数据包数据写入指定的文件。

例子:

  1. 最最常用命令:获取eth0网卡的数据
# tcpdump -w 1.cap -i eth0 -nvvv -X -s0
  1. 过滤器使用-1:过滤:获取主机10.10.10.10的数据
# tcpdump -w 1.cap -i eth0 -nvvv -X -s0 host 10.10.10.10
  1. 过滤器使用-2:过滤:获取端口8080的数据
# tcpdump -w 1.cap -i eth0 -nvvv -X -s0 port 8080
  1. 过滤器使用-3:过滤:过滤源地址和目的地址
# tcpdump -w 1.cap -i eth0 -nvvv -X -s0 src 2.3.4.5
# tcpdump -w 1.cap -i eth0 -nvvv -X -s0 dst 3.4.5.6
  1. 过滤器使用-4:过滤:过滤源地址和目的地址
# tcpdump -w 1.cap -i eth0 -nvvv -X -s0 src 2.3.4.5
# tcpdump -w 1.cap -i eth0 -nvvv -X -s0 dst 3.4.5.6
  1. 过滤器使用-5:截获主机10.10.10.10 和主机10.10.10.11 或10.10.10.12的通信
# tcpdump -w 1.cap -i eth0 -nvvv -X -s0 host 10.10.10.10 and \ (10.10.10.11 or 10.10.10.12 \)