语法

选项

表达式

例子

语法格式:

       tcpdump [ -AdDefIKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]

               [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
               [ -i interface ] [ -m module ] [ -M secret ]
               [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
               [ -W filecount ]
               [ -E spi@ipaddr algo:secret,...  ]
               [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]

               [ expression ]

————————————————————————————————————————

"man tcpdump"

选项:

-A    以 ASCII 码显示

-w    保存输出到一个文件

-r    从保存的文件读取

-c    指定需要抓获匹配的数据包数目

-D    查看可以用来监听的设备

-C    指定保存为文件时,文件的最大值

      单位是MB(100万字节=1000 * 1000;not 1024 * 1024)

-i    监听的端口

-K    不用检查校验和(ip tcp udp)

-n    不要对主机名进行dns解析

-nn    不要对主机名和端口进行解析

"man pcap-filter"

表达式:        (3种类型)

TYPE

    host    net    port    portrange

'host hhh'    'net 128.33'    'port 80 and 443'    'portrange 6000-6600'

默认是‘host’

DIR

    src    dst    src and dst    src or dst

'src hhh'    'dst net 34.73'    'src or dst port 12012'    'dst port ftp-data'

PROTO

    ether    fddi    tr    wlan    ip    ip6    arp    rarp    tcp    udp    decnet

'ether src hhh'    'arp net 128.33'    'tcp port 443'    'udp portrang 6600-7000'

例子

eg:    某些情况下需要特权用户执行该命令

$ tcpdump -D  

1.usbmon1 (USB bus number 1)

2.usbmon2 (USB bus number 2)

# tcpdump -D  

1.wlan0

2.br0
3.nflog (Linux netfilter log (NFLOG) interface)
4.nfqueue (Linux netfilter queue (NFQUEUE) interface)
5.em1
6.usbmon1 (USB bus number 1)
7.usbmon2 (USB bus number 2)
8.any (Pseudo-device that captures on all interfaces)
9.lo

eg:

# tcpdump -i 1 -c 13000 -w tmp.cap  

当不指定“-i”的选项时,默认以最小值监听。

eg:

# tcpdump -i eth2 -A dst host 10.0.0.241 > ftp.cap

获取登录 ftp 服务的账号和密码

# grep -i "user" ftp.cap

# grep -i "pass" ftp.cap