概述
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。
tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
tcpdump基于底层libpcap库开发,运行需要root权限。
一、tcpdump安装
环境 虚拟机:vmware 15.5.2 os: ubuntu 12.04
安装tcpdump
sudo apt-get install tcpdump
3. 版本查看
tcpdump --h
tcpdump version 4.0。
libpcap version 1.1.1 表示libpcap的版本。
二、tcpdump参数
常用参数选项说明:
参数 | 含义 |
---|---|
-a | 将网络地址和广播地址转变成名字 |
-c | 在收到指定的包的数目后,tcpdump就会停止; |
-d | 将匹配信息包的代码以人们能够理解的汇编格式给出;以可阅读的格式输出。 |
-dd | 将匹配信息包的代码以c语言程序段的格式给出; |
-ddd | 将匹配信息包的代码以十进制的形式给出; |
-e | 在输出行打印出数据链路层的头部信息; |
-f | 将外部的Internet地址以数字的形式打印出来; |
-l | 使标准输出变为缓冲行形式; |
-n | 直接显示IP地址,不显示名称; |
-nn | 端口名称显示为数字形式,不显示名称; |
-t | 在输出的每一行不打印时间戳; |
-v | 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息; |
-vv | 输出详细的报文信息; |
-F | 从指定的文件中读取表达式,忽略其它的表达式; |
-i | 指定监听的网络接口; |
-r | 从指定的文件中读取包(这些包一般通过-w选项产生); |
-w | 直接将包写入文件中,并不分析和打印出来; |
-T | 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单 网络管理协议;) |
三、命令选项使用举例
1. 截获主机收到和发出的所有数据包。
命令:
tcpdump
说明:
tcpdump截取包默认显示数据包的头部。
普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。
基础格式:时间 数据包类型 源IP 端口/协议 > 目标IP 端口/协议 协议详细信息
按下Ctrl+C会终止tcpdump命令。且会在结尾处生成统计信息。