博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tcpdump简介
阅读量:4187 次
发布时间:2019-05-26

本文共 1792 字,大约阅读时间需要 5 分钟。

1、简介

     tcpdump 是一个运行在命令行下的嗅探工具。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。tcpdump 是一个在BSD许可下发布的自由软件。

     tcpdump 适用于大多数的类Unix系统 操作系统:包括Linux, Solaris,BSD,Mac OS X,HP-UX和AIX 等等。在这些系统中,tcpdump 需要使用libpcap这个捕捉数据的库。其在Windows下的版本称为WinDump;它需要WinPcap驱动,相当于在Windows平台下的libpcap.

2、用途

     tcpdump能够分析网络行为,性能和应用产生或接收网络流量。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息,从而使用户能够进一步找出问题的根源。

     也可以使用 tcpdump 的实现特定目的,例如在路由器和网关之间拦截并显示其他用户或计算机通信。通过 tcpdump 分析非加密的流量,如Telnet或HTTP的数据包,查看登录的用户名、密码、网址、正在浏览的网站内容,或任何其他信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。[3]
     有很多用户喜欢使用BPF来限制 tcpdump 产生的数据包数量,这样BPF会只把“感兴趣”的封包到上层软件,可以避免从操作系统 内核向用户态复制其他封包,降低抓包的CPU的负担以及所需的缓冲区空间,从而减少丢包率。

3、选项

-a  将网络地址和广播地址转变成名字;

-d  将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd  将匹配信息包的代码以c语言程序段的格式给出;
-ddd  将匹配信息包的代码以十进制的形式给出;
-e  在输出行打印出数据链路层的头部信息;
-f  将外部的Internet地址以数字的形式打印出来;
-l  使标准输出变为缓冲行形式;
-n  不把网络地址转换成名字;
-t  在输出的每一行不打印时间戳;
-v  输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
-vv  输出详细的报文信息;
-c  在收到指定的包的数目后,tcpdump就会停止;
-F  从指定的文件中读取表达式,忽略其它的表达式;
-i  指定监听的网络接口;
-r  从指定的文件中读取包(这些包一般通过-w选项产生);
-w  直接将包写入文件中,并不分析和打印出来;
-T  将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单 网络管理协议;)

4、关键字

     在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.

     第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。
     第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。
     除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'or' ,'||';

参考文献:百度百科和维基百科

转载地址:http://erdoi.baihongyu.com/

你可能感兴趣的文章
SQLite 数据库
查看>>
行业应用
查看>>
工作的常识
查看>>
java里面获取map的key和value的方法
查看>>
积累20180203
查看>>
MySQL里获取当前week、month、quarter的start_date/end_date
查看>>
Mysql中DATE_SUB 使用方法结合查询一天内,一周内,一月内的信息实例讲解
查看>>
异构数据源海量数据交换工具-Taobao DataX 下载和使用
查看>>
代理模式解析,静态代理、动态代理一文全都告诉你
查看>>
我是如何从电脑小白走上编程之路
查看>>
想成为优秀的Java程序员,你需要读哪些书?
查看>>
Java并发| Atomic包下的原子操作类使用与原理解析
查看>>
Mac M1 安装 iTerm2+Oh My Zsh+zsh-syntax-highlighting 真香!
查看>>
M1芯片Mac 安装git
查看>>
M1芯片Mac Homebrew 安装
查看>>
一篇文章看懂ZooKeeper内部原理
查看>>
全面理解Java内存模型
查看>>
Java类型信息详解
查看>>
深入理解Java线程池
查看>>
Java线程堆栈分析
查看>>