ngrep 就像将 GNU grep 应用于网络层。它是一个基于 PCAP 的工具,允许你指定扩展正则或十六进制表达式来匹配数据包的数据负载。它理解多种协议,包括 IPv4/6、TCP、UDP、ICMPv4/6、IGMP 和 Raw,支持多种接口类型,并且与 tcpdump、snoop 等常见数据包嗅探工具一样,理解 BPF 过滤逻辑。
-r 选项)-u 时显示 UTF8 数据DLT_ 类型检测(例如 DLT_LINUX_SLL)pcap_lookupdev 弃用警告)./configure --disable-tcpkill-d 现在支持设备名称(例如 \Device\...)delay_socket 技巧,改用 Sleep()build.ps1)运行 ngrep 最简单的方式是通过 Docker:
docker pull ghcr.io/jpr5/ngrep:latest
docker run --rm --net=host --cap-add=NET_RAW ghcr.io/jpr5/ngrep:latest -q 'GET|POST' tcp port 80
详细 Docker 使用说明请参见 DOCKER。
从 Releases 页面下载预编译的二进制文件。
构建说明请参见 INSTALL。
ngrep 最初开发用于:
此外,它还可用于收集纯文本凭据,例如 HTTP 基本认证、FTP 或 POP3 认证。和所有有用的工具一样,它既可被用于善举,也可被用于恶行。
请访问 EXAMPLES 了解更多关于 ngrep 如何工作以及如何利用它查看各种有趣信息的内容。
ngrep 曾被广泛移植到众多平台,但随着时间的推移,对这些平台的访问逐渐减少。下面是最初的平台列表;如需最新的确认工作平台列表,请查看我们的 自动构建,其中包含最流行的操作系统、编译器工具链和 CPU 架构。
如果你需要帮助、有建设性的反馈或希望提交补丁,请访问 ngrep 在 GitHub 上的项目并使用在线工具。这将帮助作者更好地管理各种请求和补丁,确保没有任何丢失或遗漏(不幸的是,过去曾发生过这种情况)。
请参阅 CREDITS 查看帮助 ngrep 成为今天模样的众多贡献者的部分列表。另请注意,ngrep 使用简单的 BSD 风格许可证发布,但根据你编译时使用的正则库,你将获得 GPL(GNU regex)或 BSD(PCRE2)许可证。
几十年间(!),ngrep 已被许多流行发行版默认收录,其中一些发行版有专门的软件包维护者。许多人帮助处理了其用户报告的问题,甚至为 ngrep 创建了补丁——但我很少得知。每隔几年,我不得不在往往晦涩难懂的供应商特定跟踪系统中寻找可能存在的错误报告和补丁,以便将它们整合进来,惠及所有人。而且有时我无法找到它们全部。
如果你是某个操作系统或发行版的软件包维护者,并且发现自己正在处理 ngrep 的错误报告或编写补丁,请你至少抄送我一份,以便我能够跟踪(并可能解决)该问题。理想情况下,请给我发送补丁或拉取请求的链接,以便我可以审查并合并它。
在我看来,归根结底这是我的代码,所以这是我的责任,但我无法无处不在,看到一切。我需要你的帮助才能做好这份工作。
真心感谢你们所做的一切,以及未来将会做的一切。🙏