[开源] 做了个跨平台抓包调试工具 sniffy

AI摘要
【内容总结】 作者分享开源跨平台网络抓包与接口调试工具sniffy,基于Go、Wails v3和React开发,支持HTTP/HTTPS抓包、流式会话查看、请求重发、条件改写与Mock、断点拦截、JS脚本插件及Headless模式,属技术知识分享与项目推广。

大家好,分享一下我最近做的开源项目 sniffy 。这是一个跨平台的网络抓包与接口调试工具,支持 Windows 、macOS 和 Linux ,Apache 2.0 协议开源。

三年前我就有做一款抓包工具的想法,但前端能力一直是垃圾,得益于 LLM 的兴起,终于用 Go + Wails v3 + React 把项目做了出来。

相关链接如下:

主界面是抓包工作台,用来集中查看实时捕获的流量列表和单条请求响应详情(爽抄 Reqable ):

sniffy 抓包工作台界面

在日常抓包和接口调试中,主要可以完成以下操作:

  • 流量查看与筛选:捕获 HTTP/HTTPS 请求,检查请求头、消息体、状态码与耗时,并支持按条件过滤目标流量。

  • 流式会话查看:除了常规请求,也可以直接查看 WebSocket 、SSE 和 gRPC 的流式通信内容。

  • 请求构造与重发:支持对抓到的请求进行编辑和重发,或导入 cURL 命令发送请求并查看响应。

  • 条件改写与 Mock:通过配置匹配条件自动改写请求或响应,支持增加延迟、重定向、阻断请求等等。

  • 断点拦截:在请求发出或响应返回时暂停流量,手动修改内容后再放行,方便临时验证边界情况。

  • JavaScript 脚本插件:支持编写脚本以处理自定义的请求与响应逻辑,在一些复杂改包场景下使用

  • 无界面运行:支持以 Headless 模式运行,可通过 REST API 管理和用 WebSocket 订阅事件(详见 Headless 文档)。

请求构造器界面,用于编辑请求参数、导入 cURL 、重发请求并查看响应:

sniffy 请求构造器界面

重写规则配置界面,用于设置流量匹配条件和对应的修改动作:

sniffy 重写规则配置界面

内置插件编辑器界面,用于编写与管理 JavaScript 插件:

sniffy 插件编辑器界面

当前项目还处于早期阶段,还有不少需要打磨的地方。提示一下,解析 HTTPS 流量需要先在目标设备上安装并信任根证书;另外因还未购买苹果开发者证书,macOS 安装包目前尚未经过 Apple 公证,首次打开时遇到拦截可以到「系统设置 - 隐私与安全性」点击仍要运行

欢迎有抓包和接口调试需求的朋友下载试试。如果在使用中遇到 Bug ,或者有功能上的建议,欢迎在 GitHub 提 Issue 交流,也欢迎直接回复聊聊你的使用感受,环境大家多多点击 Star

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!