抓包工具tcpdump的使用

一、安装tcpdump

  • debian(如ubuntu)下安装
  1. sudo apt-get install tcpdump
  • centOS下安装
  1. sudo yum install tcpdump

二、tcpdump的使用

(1)使用方式:
  1. tcpdump [options] [expression]
  • options表示使用的选项
  • expression表示使用的表达式
    具体命令使用如:
    tcpdump [ -AdDefIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
    [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
    [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
    [ -Q|-P in|out|inout ]
    [ -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可以查看其用法
    一般tcpdump需要sudo权限

1、常用选项说明
  • (1)-c
    如:
  1. tcpdump -c 3 // 表示只接收3个数据包就退出

  • (2)-D
    显示所有网络接口
  1. tcpdump -D

  • (3)-e 把连接层打印出来
  1. tcpdump -e
  • (4)-i 指定要监听的网络接口(网卡接口,如eth0)
    例如:
  1. tcpdump -i eth0
  • (5)-n 不要将ip换成机器名
  1. tcpdump -n
  • (6)-w 文件名
    将成功输出到文件(而不是打印到屏幕)
    如:
  1. sudo tcpdump -w network.tcpdump

注:这个文件不能通过vi等文本编辑工具查看,需要通过tcpdump -r来查看

  • (7)-r 文件名
    从文件中读取tcpdump的数据包
    如:
  1. sudo tcpdump -r network.tcpdump
2、表达式(expression)介绍
  • (1)关于类型的关键词

    1. tcpdump host 192.168.0.100 //只查看192.168.0.100发出和收到的数据包
    2. tcpdump host 192.168.0.100 and 192.168.0.200 //只查看192.168.0.100和192.168.0.200两台主机发出和收到的数据包
    3. tcpdump port 80 //只查看80商品的数据包
  • (2)关于传输方向的关键词

  1. sudo tcpdump dst 192.168.0.100 //查看目的地址为192.168.0.100的数据包
  2. sudo tcpdump src 192.168.0.100 //查看来源地址为192.168.0.100的数据包
  • (3)关于协议的关键词
  1. sudo tcpdump tcp
  2. sudo tcpdump -i any tcp port 8080 //查看所有网络接口使用tcp协议,而且访问8080端口的数据包

参考文章:
http://www.itshouce.com.cn/linux/linux-tcpdump.html
http://www.cnblogs.com/yc_sunniwell/archive/2010/07/05/1771563.html
http://www.cnblogs.com/maifengqiang/p/3863168.html