欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux 环境下的抓包工具 - tcpdump

程序员文章站 2022-06-30 10:48:39
...

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、抓取指定网卡指定端口的交互数据

[[email protected] ~]# tcpdump -s 0 -i eth0 port 22
  • 1

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

[[email protected] ~]# tcpdump -s 0 -i eth1 -vvv port 22
  • 1

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

[[email protected] ~]# tcpdump -s 0 -i eth1 -vvv dst 114.57.136.45 and icmp
  • 1

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

[[email protected] ~]# tcpdump -i any -s 0 -w test.cap
  • 1

备注:

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