1、ngrep

ngrep工具是grep命令的网络版,ngrep用于抓包,并可以通过正则表达式,过滤、获取指定样式的数据包。能识别TCP、UDP和ICMP协议,理解bpf的过滤机制。

可以用来分析、定位服务中的问题。

因为如果包含多个服务的大型服务出现问题,需要逐步分析定位问题到具体的服务。使用ngrep抓包可以确定数据包是否已经到了某个服务模块,从而定位是哪个部分的问题。

1.1 安装

1.2 语法

ngrep <-LhNXViwqpevxlDtTRM> <-IO pcap_dump> <-n num> <-d dev> <-A num> <-s snaplen> <-S limitlen> <-w normal|byline|single|none> <-c cols> <-P char> <-F file>

1.3 选项

  • -q :不显示包的详情,都以‘#’ 号代替现实
  • -e :显示空数据包
  • -i :忽略大小写
  • -v :反转匹配
  • -R :don't do privilege revocation logic
  • -x :以16进制格式显示
  • -X :以16进制格式匹配
  • -w :整字匹配
  • -p :不使用混杂模式
  • -l :make stdout line buffered
  • -D :replay pcap_dumps with their recorded time intervals
  • -t :在每个匹配的包之前显示时间戳
  • -T :显示上一个匹配的数据包之间的时间间隔
  • -M :仅进行单行匹配
  • -I :从文件中读取数据进行匹配
  • -O :将匹配的数据保存到文件
  • -n :仅捕获指定数目的数据包进行查看
  • -A :匹配到数据包后dump随后的指定数目的数据包
  • -s :set the bpf caplen
  • -S :set the limitlen on matched packets
  • -W :设置显示格式byline将解析包中的换行符
  • -c :强制显示列的宽度
  • -P :set the non-printable display char to what is specified
  • -F :使用文件中定义的bpf(Berkeley Packet Filter)
  • -N :显示由IANA定义的子协议号
  • -d :使用哪个网卡,可以用-L选项查询
  • -L :查询网卡接口

2、使用实例

注意:需要以超级管理员身份执行该命令

  • ngrep host 192.168.1.8 udp:抓udp包

  • ngrep -W byline -qd any '.event' udp port 1514:抓取1514端口udp包,过滤正则匹配包含‘event’字段的包

  • ngrep -W byline 'GET /' 'tcp and dst port 80' -d eth1 | awk -v RS="#+" -v FS="\n" 'length() > 1000':查询大于1k的请求头

  • ngrep -d en0 -W byline host 192.168.1.9:抓取本地 en0 和 61.135.169.125(百度ip)的通信信息,并以行打印出来

[linux]ngrep命令、常见用法的更多相关文章

  1. Linux中find常见用法

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...

  2. [转]Linux中find常见用法示例

    Linux中find常见用法示例[转]·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;find命令的参 ...

  3. Linux中 find 常见用法示例

    Linux中find常见用法示例 #find path -option [ -print ] [ -exec -ok command ] {} \; #-print 将查找到的文件输出到标准输出 #- ...

  4. Linux awk命令常见使用方法介绍

    Linux awk命令常见使用方法介绍 By:授客 QQ:1033553122   awk运行方式有三种,其中常用的为命令行方式 awk [-F  field_separator]  '{patter ...

  5. Linux tar命令高级用法——备份数据

    Linux tar命令高级用法——备份数据 2015-12-31 Linux学习 Linux上有功能强大的tar命令,tar最初是为了制作磁带备份(tape archive)而设计的,它的作用是把文件 ...

  6. [转帖]Linux date命令的用法(转)

    Linux date命令的用法(转) https://www.cnblogs.com/asxe/p/9317811.html 1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与 ...

  7. Linux find命令的用法实践

    一.find命令简介 Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大 ...

  8. Linux crontab命令 定时任务 用法详解以及no crontab for root解决办法

    最近系统服务器进行搬迁,又恰好需要使用定时任务运行程序,而我的程序主要使用PHP写的,然后总结了下定时任务的用法,但是在这里主要写的是关于crontab命令的用法,使用过程中遇到不少问题,例如no c ...

  9. curl命令常见用法汇总 good

    curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面. curl是一个强大的命令行工具,它可以通过网络将信息传递给服务器或者从服 ...

  10. Linux date命令的用法(转)

    1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与时间. 3.命令参数 -d<字符串>:显示字符串所指的日期与时间.字符串前后必须加上双引号: -s<字符串& ...

随机推荐

  1. java获取硬盘ID以及MAC地址

    http://blog.csdn.net/coolwzjcool/article/details/6698327 版权声明:本文为博主原创文章,未经博主允许不得转载. 为了达到软件注册,或者说软件和电 ...

  2. linux 细节 问题解决

    Ubuntu 12.04 启动时停在Checking battery state…… 1.在停止的界面按下Ctrl+Alt+F1 2.reboot halt

  3. Lumen 时区设置

    根据 Laravel 4.x 和 5.0 的经验, 只需要到 config/app.php 中设置下 'timezone' 参数为 'PRC' 就好了, 找到 Lumen 的 config 目录, 在 ...

  4. /bin/sh 与 /bin/bash 的区别

    /bin/sh 与 /bin/bash 的区别,用 : 截取字符串不是POSIX 标准的. 区别 sh 一般设成 bash 的软链 (symlink) ls -l /bin/sh lrwxrwxrwx ...

  5. Android如何监听蓝牙耳机的按键事件(转)

    源: Android如何监听蓝牙耳机的按键事件 写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「 ...

  6. JS表单原生验证器

    一.前言 最近在开发一个新项目,需要做登陆等一系列的表单提交页面.在经过“缜密”的讨论后,我们决定 不用外部流行的框架,如bootstrap,由于我负责的模块 仅仅是其中的一部分,因此少数服从多数,无 ...

  7. MySQL测试环境遇到 mmap(xxx bytes) failed; errno 12解决方法

    查看Mysql日志 InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap( bytes) failed; errno InnoDB: ...

  8. RDA5820收音机芯片驱动

    RDA5820 是北京锐迪科推出的一款集成度非常高的立体声 FM收发芯片.该芯片具有以下 特点:   FM 发射和接收一体   支持 65Mhz~115Mhz的全球 FM接收频段,收发天线共用. ...

  9. ubuntu14.04安装配置jdk1.8.0_25

    Reference: http://jingyan.baidu.com/article/eb9f7b6d8f82a6869364e8a7.html 今天尝试在ubuntu14.04 LTS上安装jdk ...

  10. List<KeyValuePair<TKey,TValue>> 与 Dictionary<TKey,TValue> 不同

    两者都可以通过 KeyValuePair<TKey,TValue> 进行遍历,并且两者可以相互转换: List<KeyValuePair<string,string>&g ...