Tcpdump抓包工具使用说明

Tcpdump介绍

    Linux环境下的嗅探器tcpdump是一个多用途的网络通信监测器,可捕获和显示报文及其内容。它可用来作为协议分析器,在系统及网络设备间提供一个最佳途径来探查通信和(或)连通性问题。大多数时候,网络疑难问题集中在网络配置问题以及诊断硬件相关故障。然而,用户将常常面对协议相关问题并且被迫钻研特定协议的机制来解决问题。使用tcpdump,被检查的报文将用长格式或短格式(根据使用的命令行选项)显示其信息。tcpdump有一个非常强有力的过滤机制,可用来查找与指定字符串或规则相匹配的报文。

    tcpdump提供两种主要的捕获模式:杂凑和非杂凑。在杂凑模式下,捕获每个在网络上传递的报文,不管该报文是否发送到执行tcpdump 的系统。tcpdump工具提供了许多命令行选项来选择捕获模式、控制输出、指定过滤规则以及指定其他操作特性。这些选项根据它们的功能被分组并且包括以下种类:操作模式、显示选项、报文过滤选项。

Tcpdump的使用

centos下安装Tcpdump

yum install -y tcpdump*

常用的过滤器设置方法:

地址过滤:

host 192.168.98.169、src 192.168.98.169  # 过滤主机或源地址

dst 192.168.98.169、net 111.1.1.0/24   # 过滤目的地址

src net 192.168.98.0/24、dst net 192.168.98.0/24   #过滤网段

协议过滤:udp 、tcp、icmp、esp、not arp等。

端口过滤:port 端口,例如:port 80

过滤关键字和值之间以空格分隔;各个条件之间用and、or逻辑符连接;支持not关键字.例如:

1、tcpdump –i any src 192.168.98.169 or dst 111.1.1.108 and udp and port 2010

2、tcpdump –i any tcp and not port 21

过滤选项

  -i 指定接口

例:-i eth0、-i ipsec0 、-i vlan001

  -n  不把主机的网络地址转换成名字。

  -e  显示MAC地址。

tcpdump -i any -e -n -c 10

使用-e参数抓包实例

-t  不显示时间信息。

tcpdump -i any -t -n -c 10

使用-t参数抓包实例

-tt  显示没有格式化的时间信息。

tcpdump -i any -tt -n -c 10

使用-tt参数抓包实例

  -c  收到指定的数据包数目后,就停止显示

例:-c 10 收到10个包后停止。

tcpdump -i any -c 10

使用-c参数抓包实例

  -s  显示信息长度设置

例:-s 30

tcpdump -i any -s 30 -c 10

使用-s参数抓包实例

  -q  快速输出,仅列出少数的传输协议信息。

tcpdump -i any -q -c 10

使用-q参数抓包实例

  -v  详细显示指令执行过程,使用该选项可以看到数据的ttl、ID、长度、offset、flag、协议等信息。

tcpdump -i any -v host 192.168.98.1 -c 10 and icmp

使用-v参数抓包实例

  -vv  更详细显示指令执行过程。

tcpdump -i any -vv host 192.168.98.1 -c 10

使用-vv参数抓包实例

  -x  用十六进制字码列出数据包资料。

tcpdump -i any -x -c 5

使用-x参数抓包实例

  -d  把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。

  -dd  把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。

  -ddd  把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。

使用-d参数抓包实例

  -S  用绝对而非相对数值列出TCP关联数。

tcpdump -i any -S tcp -c 5

使用-S参数抓包实例

-w<数据包文件>  把数据包数据写入指定的文件。

-r  从指定的文件中读取包(这些包一般通过-w选项产生)。

tcpdump -i any -c 10 -w tcpdump.pcap

tcpdump -i any -c 10 -r tcpdump.pcap

使用-w -r 参数抓包实例

其余常用选项

  -T<数据包类型>  强制将表达方式所指定的数据包转译成设置的数据包类型

  -f   用数字显示网际网络地址。

  -F<表达文件>  指定内含表达方式的文件

  -l  使用标准输出列的缓冲区

  -N  不列出域名

  -O  不将数据包编码最佳化

  -p  不让网络界面进入混杂模式:只抓发给给机的数据包

注意

各个选项之间用空格分隔,例如:

tcpdump -i any -c 20 -t -s 200 -n

选项和过滤条件组合如下面的例子:

tcpdump -i any -c 20 -t -s 200 -n host 111.1.1.108 and tcp

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 tcpdump 是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络...
    王奥OX阅读 39,867评论 0 12
  • tcpdump 是一款灵活、功能强大的抓包工具,能有效地帮助排查网络故障问题。以我作为管理员的经验,在网络连接中经...
    AI云栈阅读 4,987评论 0 4
  • 实用tcpdump命令 //查看本机与mysql的操作命令注意-i any表示监听所有网络接口,我们也根据自身情况...
    kevinhuangk阅读 5,039评论 0 1
  • tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。 不带任何选项的tcpdu...
    SkTj阅读 3,122评论 0 0
  • 2018年2月4日,立春,北京城,天晴,有风。 不止一次来北京,却一次比一次不让人欢喜。无关风月,不论雅俗,好像仅...
    非主流韭零后阅读 1,137评论 2 3