Linux 环境下,通常通过 tcpdump 来进行抓包和分析。它是几乎所有 Linux 发行版本预装的数据包抓取和分析工具。

一、tcpdump 的用法

tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
    [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
    [ -i interface ] [ -j tstamptype ] [ -M secret ]
    [ -P in|out|inout ]
    [ -r file ] [ -s snaplen ] [ -T type ] [ -V file ] [ -w file ]
    [ -W filecount ] [ -y datalinktype ] [ -z command ]
    [ -Z user ] [ expression ]


常见参数说明(区分大小写):
    -s  设置数据包抓取长度。如果置为0,则表示自动选择合适的长度来抓取数据包。
    -w  将抓包结果导出到文件,而不是在控制台进行分析和打印输出。
    -i  指定需要监听的接口(网卡)。
    -vvv 输出详细的数据交互信息。
    expression 一个正则表达式,用作过滤报文的条件。主要包含如下几类:
        关于类型的关键字:包括 host(主机),net(网络),port(端口)。
        确定传输方向的关键字:包括 src(源),dst(目标),dst or src(源或目标),dst and src(源和目标)。
        使用协议的关键字:包括 icmp,ip,arp,rarp,tcp,udp等类型。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

二、常见用法 
1、抓取指定网卡指定端口的交互数据

[root@iZbp1bhgh25pacaj2ffmp2Z ~]# tcpdump -s 0 -i eth0 port 22
  • 1

2、抓取指定网卡发送给指定 IP 上指定端口的交互数据,并在控制台输出详细交互信息

[root@iZbp1bhgh25pacaj2ffmp2Z ~]# tcpdump -s 0 -i eth1 -vvv port 22
  • 1

3、抓取发送至指定 IP 的 ping 交互数据,并在控制台输出详细交互信息

[root@iZbp1bhgh25pacaj2ffmp2Z ~]# tcpdump -s 0 -i eth1 -vvv dst 114.57.136.45 and icmp
  • 1

4、抓取系统内所有接口数据并保存到指定文件

[root@iZbp1bhgh25pacaj2ffmp2Z ~]# tcpdump -i any -s 0 -w test.cap
  • 1

备注:

通过tcpdump抓包获取的数据,可以通过wireshark进行分析,详情请参考 http://blog.csdn.net/m0_37886429/article/details/71123137

Logo

更多推荐