1、tcpdump安装:yum install tcpdump

2、关键字介绍

类型关键字:

  指定主机  host 192.168.1.111

  指定网络地址  net 202.0.0.0

  指定端口  port 8080

方向关键字

  src:src 192.168.1.111,ip包源地址是192.168.1.111

  dst:det 192.168.1.112,ip包目标地址是192.168.1.112

  src or dst

  src and dst

协议关键字

  fddi、tcp、udp、rarp、arp、http等

其他关键字  

  gateway(抓取指定网关的数据包)、broadcast、less、greater(非运算 'not ' '! ', 与运算'and','&&';或运算 'or' ,'||';)

3、混杂模式

  混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下网卡只把发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。简单的讲,混杂模式就是指网卡能接受所有通过它的数据流,不管是什么格式,什么地址的。事实上,计算机收到数据包后,由网络层进行判断,确定是递交上层(传输层),还是丢弃,还是递交下层(数据链路层、MAC子层)转发

  查看当前网卡是否为混杂模式:#Ifconfig eth0

  开启: # ifconfig eth0 promisc

  关闭: # ifconfig eth0 -promisc

4、相关选项:

-c:指定要抓取的包数量。

-i interface:指定tcpdump需要监听的接口。

-n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。

-C:用于判断用 -w 选项将报文写入文件的大小是否超过这个值,超过了就新建文件(文件名后缀是1、2、3依次增加)。

-p:不让网络界面进入混杂模式。

-f:将外部的Internet地址以数字的形式打印出来。

-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。

-N:不打印出host的域名部分。例如tcpdump将会打印'nic'而不是'nic.ddn.mil'。

-P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。

-e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。

-q:快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。

-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。

-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。

-vvv:当分析和打印的时候,产生详细的输出。

-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。

-w:将抓包数据输出到文件中。可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。

-s:指定要监听数据包的长度

-tttt:加入时间戳

5、实例:

  1、tcpdump -i ens33  -c 100 -vvv -tttt -s 0 -w 1.cap host 192.168.1.111 and tcp port 8080

  抓取从ens33网口出去源地址为192.168.1.111,端口为8080的tcp协议的100个包,具有详细信息、时间戳、不限长度写入1.cap文件

  2、tcpdump -i eth33 src host 192.168.1.111 and dst port 8080

  抓取从ens33流向源地址为192.168.1.111的包以及接收8080端口的包

6、wireshark界面

7、封包协议

  Frame:物理层的数据帧概况。

  EthernetII:数据链路层以太网帧头部信息。

  InternetProtocol Version 4:互联网层IP包头部信息。

  TransmissionControl Protocol:传输层的数据段头部信息。

  HypertextTransfer Protocol:应用层的信息。

8、响应详细数据

9、http字段简介

  Host:主机地址
  Connection:是否需要持久连
  Content-Length:HTTP消息实体的传输长度
  Cache-Control:指定请求和响应遵循的缓存机制
  Accept:指定客户端能够接收的内容类型,内容类型中的先后次序表示客户端接收的先后次序
  Origin:最初请求是从哪里发起的( origin只用于Post请求)
  User-Agent:告诉服务器,Browser内核
  Content-Type:表示具体请求中的媒体类型信息
  Referer:让服务器判断来源页面, 即用户是从哪个页面来的
  Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型
  Accept-Language:指定HTTP客户端浏览器用来展示返回信息所优先选择的语言。
  

Tcpdump一些常用指令的更多相关文章

  1. linux常用指令

    整理下来的linux常用指令 mount [-t 文件系统] 设备文件名 挂载点挂载命令,一般用于在挂载ISO,或者其他比如U盘等设备时使用,[-t iso9660]为固定格式,可写可不写,非必写项. ...

  2. 走进AngularJs(二) ng模板中常用指令的使用方式

    通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的.ng的模板真是让我爱不释手.学习ng道路还很漫长,从模板 ...

  3. mac 终端 常用指令

    开始正式研究ios 应用开发,由于是从C开始学起,所以学习下常用的mac终端指令,方便后续常用操作. mac 终端 常用指令: 1.ls指令 用途:列出文件 常用参数 -w 以简洁的形式列出所有文件和 ...

  4. ImageMagick常用指令详解

    Imagemagick常用指令 (ImageMagick--蓝天白云) (ImageMagick官网) (其他比较有价值的IM参考) (图片自动旋转的前端实现方案) convert 转换图像格式和大小 ...

  5. [AngularJS] 常用指令

    常用指令 ng-hide指令,用于控制部分HTML元素可见(ng-hide="false")和不可见状态(ng-hide="true"),如下: <div ...

  6. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

    一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的   git的起源 作者是Linux之父:Linus Bened ...

  7. linux下svn常用指令

    windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说.主要说说linux下svn的使用,因为linux下大部分的 ...

  8. [转载]linux下svn常用指令

    一下内容转载于:http://blog.chinaunix.net/space.php?uid=22976768&do=blog&id=1640924.这个总结的很好~ windows ...

  9. ARM汇编常用指令

    RAM汇编常用指令有MOV B BL LDR  STR

随机推荐

  1. [Xamarin] 透過StartActivityForResult傳值回來(转贴)

    上一篇文章(開啟另外一個Activity 並且帶資料),提到了開啟一個新的Activity ,我們將值透過intent 帶到下個Activity 但是,如果我們開啟的Actrivity其實是有一個任務 ...

  2. 找到MySQL配置文件默认路径

    如果不知道当前使用的配置文件的路径,可以尝试下面的操作: # which mysqld /usr/local/mysql/bin/mysqld # /usr/local/mysql/bin/mysql ...

  3. Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(四)

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  4. UTF8最好不要带BOM,附许多经典评论

    UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM.所以不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯(顺便提一 ...

  5. java C# objective-c AES对称加解密

    /** * AES加解密 */ public class AESHelper { final static String AES_KEY = "43hr8fhu34b58123"; ...

  6. i.mx6 Android5.1.1 初始化流程之init进程(未完成)

    概述: 接在i.mx6 Android5.1.1 初始化流程之框架之后 参考资料:http://blog.csdn.net/mr_raptor/article/category/799879 相关源码 ...

  7. Java SPI

    一.什么是Java SPI? SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的.在java.util.ServiceLoade ...

  8. 使用 Angular 和 RxJS 实现的无限滚动加载

    无限滚动加载应该是怎样的? 无限滚动加载列表在用户将页面滚动到指定位置后会异步加载数据.这是避免寻主动加载(每次都需要用户去点击)的好方法,而且它能真正保持应用的性能.同时它还是降低带宽和增强用户体验 ...

  9. mysql 最小配置 及 安装

    [mysqld] # 设置3306端口 port= # 设置mysql的安装目录 basedir=D:\-Installer\-MySQL\mysql--winx64 # 设置mysql数据库的数据的 ...

  10. [转]Getting started with ASP.NET Web API OData in 3 simple steps

    本文转自:https://blogs.msdn.microsoft.com/webdev/2013/01/29/getting-started-with-asp-net-web-api-odata-i ...