当前位置: 首页 > news >正文

网络流量抓包神器!ngrep 命令超详细教程|数据包级网络 grep

一、命令简介

ngrep(Network Grep)是 grep 命令的网络版本,专门用于在数据包级别进行模式匹配和搜索。它继承了 grep 的许多特性,并利用 libpcap 库支持跨平台运行,能够识别和分析 TCP、UDP、ICMP 等多种网络协议的数据包。ngrep 支持 Berkeley Packet Filter(BPF)语法,允许用户灵活地过滤和捕获网络流量,是网络调试、安全分析和协议学习的实用工具。

二、语法格式

基本语法

bash

运行

ngrep [选项] [匹配表达式] [BPF过滤器]

其中:

  • [匹配表达式]:指定要搜索的字符串或正则表达式
  • [BPF过滤器]:用于过滤网络流量(与 tcpdump 语法兼容)

详细语法

bash

运行

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> <match expression> <bpf filter>

三、常用选项及说明

表格

选项说明
-h显示帮助信息
-V显示版本信息
-q静默模式,不显示不匹配的数据包
-e显示空数据包
-i忽略大小写进行匹配
-v反转匹配,显示不匹配的数据包
-x以十六进制格式显示数据包内容
-X以十六进制格式进行匹配
-w整字匹配(类似 grep -w)
-p不使用混杂模式(promiscuous mode)
-t在每个匹配的数据包前显示时间戳
-T显示上一个匹配数据包之间的时间间隔
-I <文件>从 pcap 文件中读取数据进行匹配
-O <文件>将匹配的数据包保存到 pcap 文件
-n <数量>仅捕获指定数量的数据包后退出
-A <数量>匹配到数据包后,额外捕获后续指定数量的数据包
-d <接口>指定要监听的网络接口(如 eth0、lo、any)
-W <格式>设置显示格式:normal(默认)、byline(按行解析)、single(单行)、none(无格式)
-L列出所有可用的网络接口

四、示例用法

基本捕获

捕获本地回环接口上 18080 端口的流量,并按行解析显示:

bash

运行

ngrep -W byline -d lo port 18080

搜索特定内容

在所有网卡的 80 端口(HTTP)流量中,忽略大小写搜索包含password的数据包:

bash

运行

sudo ngrep -i password port 80

十六进制操作

以十六进制格式显示 443 端口(HTTPS)的数据包内容:

bash

运行

sudo ngrep -x port 443

文件输入输出

从已有的抓包文件capture.pcap中读取数据,并搜索GET请求:

bash

运行

ngrep -I capture.pcap "GET"

高级控制与显示

捕获 DNS 流量(端口 53),只处理前 10 个数据包,并显示时间戳和包间隔:

bash

运行

sudo ngrep -t -T -n 10 port 53

监控 SSH 登录尝试:

bash

运行

sudo ngrep -d any "ssh" port 22

五、注意事项

  • 权限要求:ngrep 需要 root 权限或相应的网络捕获权限(如 CAP_NET_RAW 能力)才能监听网络接口。在大多数情况下,需要使用 sudo 运行。
  • 性能影响:在高流量网络环境中使用复杂的匹配表达式可能增加系统负载。建议使用精确的 BPF 过滤器缩小捕获范围。
  • BPF 过滤器:ngrep 与 tcpdump 完全兼容,是过滤流量的关键,应优先使用过滤器而非匹配表达式来减少处理的数据量。

获取更多Linux学习资料请关注“阿成学长工具包”,对话框中输入2647获取

http://www.jsqmd.com/news/1113175/

相关文章:

  • JMeter线程组配置全解析:从原理到实战的性能测试指南
  • Adobe-GenP终极指南:3分钟快速激活Adobe全家桶完整方案 [特殊字符]
  • 吾爱大佬开发!全能格式转换工具,可以转换各种音视频文档!
  • go语言项目--实例化(图书管理)--001
  • 中间继电器到底干什么用的?90%的新手没搞懂
  • Java毕业设计实战:Spring Boot+MyBatis-Plus健身房管理系统开发指南
  • 2026 AI编程工具选边站:IDE派与Agent派的温馨拆解
  • 深度解析许可优化策略:让软件授权不再浪费
  • 橡胶垫、密封圈尺寸检测提速方案:一台自动影像测量仪搞定全品类
  • 钱对不上、利润算不准?电商企业多平台对账的深层解法
  • 90天掌握AI智能体开发:从新手到专家的SOP指南
  • 智慧校园运维升级:IoT智能锁身份核验与通断电联动落地实践
  • 腾讯混元3D开源:8G显存跑通AIGC生成可编辑3D模型
  • Java应用性能测试自动化:从JMeter实战到高并发调优
  • 26教资报名照片审核不通过?常见原因与正确照片尺寸全解析
  • 饮用水pH计的技术原理科普
  • AI Agent工作流系统设计与实践指南
  • LINUX高通平台交叉编译地图软件PROJ
  • 多维聚合实战:从OLAP立方体到语义层的全链路解析
  • 二级分销爆单的“财务噩梦”:为什么微商城一卡,老板的钱就被多提现了?
  • IIS短文件名漏洞:原理、检测与彻底修复实战指南
  • Django分页封装
  • 近期零基础量化,工具重点要跟着阶段变
  • 马尔可夫链与HMM工程实战:从状态设计到生产部署
  • 组件类型-Props-Emits-Ref
  • 一次性讲清楚 Node.js 事件循环(Event Loop)
  • Selenium自动化测试与动态网页爬虫实战指南
  • 二十年只为超越,ROG玩家国度与蜘蛛侠共赴英雄新章
  • 搭建微信电商小程序要多少钱:定制和SaaS商城怎么选更适合实体店
  • ThinkPad风扇控制终极指南:TPFanCtrl2实现128级无级调速与智能温控