CentOS 环境 ngrep 安装及使用

前言

ngrep可以看作网络版的 grep,是一款功能强大的抓包工具。它不但适配各个操作系统,也能识别大量常用网络协议,支持 BPF 过滤规则,提供灵活抓取各类数据包的能力

1. CentOS 环境安装 ngrep

1.1 搜索安装包

执行以下命令搜索 ngrep 的可用安装包,可以看到在 CentOS 系统下一个可以用的安装包是 ngrep.x86_64

sudo yum search ngrep

在这里插入图片描述

1.2 安装 ngrep

执行以下命令即可下载安装 ngrep,安装结束后可以使用命令 sudo ngrep -V 查看版本信息

ngrep 依赖 libpcap 库,通常使用下面的命令安装 ngrep 时都会自动下载相关依赖。如果安装出错未自动解决依赖,可尝试使用 sudo yum install libpcap 下载依赖库后重试

sudo yum install ngrep

2. ngrep 使用

2.1 ngrep 可选参数列表

ngrep 常用的参数如下表所示,更多参数可以使用命令 man ngrep 查看详细信息

参数功能
-d指定需要抓包的网卡,Linux 系统可使用 ifconfig 命令查看本地网卡设备
-q设置静默,如果没有该参数,未匹配的数据包都以“#”显示
-t在每个匹配的包之前显示时间戳
-i忽略大小写
-W设置数据包内容的展示格式,可选参数为 byline(按行分割) 等

2.2 ngrep 使用示例

ngrep 的过滤抓包实际分为3个部分,首先是网卡设备的选定,其次是 BPF 过滤器应用,最后才是报文内容匹配。以下是几个使用的例子:

  1. 监听本地 eth0 网卡,过滤报文内容能匹配指定字符串 COMPLETE 的数据包,按照包中的换行符分行打印报文

    sudo ngrep "COMPLETE" -d eth0 -W byline -q -t -i 
    

    在这里插入图片描述

  2. 监听本地 eth0 网卡,过滤任一端使用了 5080 端口进行 udp 通信并且报文中内容能匹配指定模式串[a-zA-Z]的数据包,按照包中的换行符分行打印报文

    注意,通信协议 udp/tcp 等需要在 port 参数前指定

    sudo ngrep '[a-zA-Z]' -t -W byline -d eth0 udp port 5080
    

    在这里插入图片描述

  3. 监听本地 eth0 网卡,过滤通信双端中任一端使用了 5080 端口并且任一端主机地址为 127.0.0.1 的数据包,按照包中的换行符分行打印报文

    sudo ngrep -d eth0 -q -t -W byline host 127.0.0.1 and port 5080
    

    在这里插入图片描述

  4. 监听本地 eth0 网卡,过滤发包端口为 5090 协议为 tcp 或者发包端口为 5061 且收包主机为 172.18.192.76 或者 127.0.0.1 的数据包,并进一步过滤报文内容匹配指定字符串 COMPLETE 的数据包,最后按照包中的换行符分行打印报文

    BPF 过滤规则中,src 标识来源,dst 标识目标。实际上 ngrep 和 tcpdump 在 BPF 过滤器使用语法上是完全一致的,读者如感兴趣可自行搜索相关知识

    sudo ngrep "COMPLETE" -d eth0 -W byline -q -t \(dst host 172.18.192.76 or dst host 127.0.0.1\) and \(tcp src port 5090 or src port 5061\)
    

    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值