文章目录项目背景项目简介运行效果技术栈核心功能1. MITM 代理抓包2. 逐域解密策略3. 系统代理一键接管Windows4. 会话列表5. InspectorsHeaders / TextView / JSON / XML / Raw6. 分段计时7. QuickExec8. 其它项目结构环境与依赖安装/使用教程安装与构建快速上手四步配置REST API脚本化集成能力边界写在最后三种抓包的实现PulseProxy基于MITM 代理实现的Web 版 HTTP(S) 抓包工具–(通过系统代理HTTP(S)抓包)PulseHttp零侵入的被动 HTTP 抓包 Web 工具–(通过监控网卡HTTP抓包)PulseHttps零侵入的被动HTTPS抓包Web工具–(通过ebpf hook TLS库HTTPS抓包)项目背景这个项目的需求来自Web的监控和分析需求于是参考Fiddler、Charles我使用Claude Code GLM-5.3写了PulseProxy——实现HTTP和HTTPS抓包功能最终开发了一个Web版本的Fiddler、Charles工具。以下文档和项目代码均使用Claude Code 火山引擎的GLM-5.3编写。项目简介PulseProxy 是一个MITM中间人调试代理 Web UI的一体化工具一个程序两个角色默认在:8888提供 HTTP(S) 抓包代理同时在:3000提供 Web 管理界面两个端口被占用时都会自动 1 重试单文件部署前端资源通过go:embed打进二进制拷一个文件到任何机器就能跑没有安装向导、没有运行时依赖零配置起步不写任何配置文件也能直接运行所有字段都有内置默认值需要调整时再放一份configs/pulseproxy.yaml即可退出不留痕一键接管系统代理后程序退出时自动还原你原来的代理配置被强杀的残留也会在下次启动时自愈。它对标的场景是日常 Web 调试排查接口请求、检查响应头与 body、分析接口耗时、验证缓存/压缩行为——也就是 Fiddler Classic 的核心工作流运行效果技术栈层选型语言Go 1.25Web 框架ginTLS / 证书标准库crypto/tlsECDSA P-256 自签 CA按 SNI 动态签发叶子证书WebSocketgorilla/websocket配置yaml.v3强类型结构体支持热更新写回解压标准库 gzip/flate andybalholm/brotli日志logrus前端Bootstrap 4.6 jQuery 3.5 highlight.jsCDN 引入原生 ES Modules无构建工具两个值得一提的选型决策CGO_ENABLED0 纯静态编译。整个项目不依赖任何 C 库一条命令即可交叉编译出 Windows / Linux (amd64/arm64) 全平台产物Linux 服务器上解压即用。前端零构建。没有 Node、没有 webpack前端就是手写的 ES Modules框架走 CDN静态资源go:embed进二进制。仓库里没有node_modulesgit clone之后go run立刻能看到界面。核心功能1. MITM 代理抓包工作方式与 Fiddler 一致客户端把代理指向 PulseProxy 后——明文 HTTP直接解析转发HTTPS走CONNECT隧道程序劫持hijack连接后先回200 Connection Established再以自签 CA 动态签发该域名的叶子证书与客户端完成 TLS 握手内层复用标准http.Server解析 HTTP——请求响应全部可见不希望解密的域名如网银可配置为仅隧通连接照常双向转发会话列表里仍能看到一条 CONNECT 记录但不解密内容。MITM 侧 ALPN 只回应http/1.1浏览器会自动降级避开了 HTTP/2 解析的复杂度。2. 逐域解密策略HTTPS 解密支持三级控制全局开关逐域 allow/deny 通配符列表*.bank.example这类写法allow 优先于 deny都不匹配时回落全局开关。策略和开关都可以在 Web UI 设置页热更新改完立即对新建连接生效并写回配置文件。3. 系统代理一键接管Windows工具栏一个按钮搞定「接管 → 调试 → 退出」全流程接管时写 HKCU 注册表 调用 wininetInternetSetOption广播Chrome/Edge/Firefox无需重启即时生效接管前的原配置快照落盘程序退出包括 CtrlC 优雅退出自动还原进程被强杀来不及还原下次启动检测到残留快照会自动自愈接管期间你手动改过系统代理程序识别到快照已过期不覆盖你的修改只弃用快照。手机等局域网设备把代理指向运行 PulseProxy 的机器 IP默认监听0.0.0.0即可抓包无需装任何 App。4. 会话列表WebSocket 实时推送session_created立即上屏session_updated以 50ms 窗口按 ID 合并长连接下的高亮更新不闪烁也不丢事件排序、多条件过滤URL 文本 / Host / 状态码 / body 大小、暂停抓包暂停期间流量照常转发只是不记录不会打断业务、多选删除、一键清空会话可打标记注释、颜色、加粗标记为protected的会话不会被容量淘汰。5. InspectorsHeaders / TextView / JSON / XML / RawJSON 自动格式化 语法高亮XML 同理保留上游真实的Content-EncodingFiddler 语义gzip / deflate / brotli 在展示层按需解码你始终能看到原始编码头超大 body 只保存前 N KB默认 2MB可配界面明确标注「已截断 真实大小」不会悄悄骗你说 body 就这么大。6. 分段计时基于httptrace记录每个请求的DNS / TCP 连接 / TLS 握手 / TTFB / 内容传输耗时在 Headers 视图底部一览定位「慢在握手还是慢在服务端」一眼可判。7. QuickExec列表底部一条命令行CtrlQ 聚焦Fiddler 老用户会心一笑命令作用?keywordURL 包含 keyword304/2xx按状态码过滤5000/500响应 body 大于/小于 N 字节example.comHost 包含指定域名reset/clear清空过滤条件help帮助8. 其它链式上游代理配置proxy.upstream后流量可再经一层代理如公司网关转发HTTPS 隧道同样支持链式 CONNECTWebSocket 等 101 协议升级自动识别并双向隧通自身流量过滤Web UI 自己产生的请求不会进列表避免噪音。项目结构cmd/pulseproxy/ 入口配置加载 → 组件装配 → 双服务启动 → 优雅退出 internal/ model/ Session/Timing/BodyRef 等纯数据契约所有层共用 config/ YAML 强类型配置 默认值 写回 逐域通配符匹配 events/ 进程内事件总线seq 单调、非阻塞发布、订阅扇出 store/ 内存会话存储ring 双上限条数 body 字节联动淘汰、 tee 截断保存、保护标记、SHA256 certs/ CA 生成/持久化 按 SNI 动态签发叶子证书缓存、IP/DNS SAN quad/ 上游连接四元组注册表TTL 延迟注销 sysproxy/ Windows 系统代理接管/恢复 非 Windows stub proxy/ MITM 核心CONNECT hijack、动态签发、httptrace 计时、 101 隧通、上游代理链式、暂停 api/ gin REST WebSocket hub 静态资源托管 version/ 版本常量 web/ 前端 SPA原生 ES Modulesgo:embed 内嵌两条贯穿全局的工程约定比较能体现这个项目的分层思路proxy与api互不 import。API 层通过一个三方法的小接口SetPaused/SetHTTPSConfig/Port控制代理两包各自可独立测试存储只暴露闭包修改。会话加入 store 后只能通过Update/AppendBody闭包改字段杜绝散落的直接写并发安全由存储层统一保证。关键数据流proxy 捕获 → store.Add/Update发事件→ WS hub 推送50ms 合并→ 前端 store 状态机 → grid/inspector 渲染。过滤、排序、QuickExec 全部在前端本地完成后端零查询压力。环境与依赖构建Go 1.25无 CGO、无任何系统库依赖git clone后即可构建运行Windows全功能含系统代理一键接管、CA 一键导入Linux / macOS代理抓包与 Web UI 完全可用系统代理接管与 CA 自动导入不支持手动配置系统代理、手动导入根证书即可网络前端框架走 CDNjsdelivr首次打开 Web UI 需联网加载 Bootstrap/jQuery/highlight.js代理转发本身不受影响安装/使用教程安装与构建最简单的方式源码直接跑gitclone仓库地址cdpulseproxy go run ./cmd/pulseproxy构建单文件可执行前端已内嵌go build-opulseproxy.exe ./cmd/pulseproxy全平台发行构建用自带的build.cmdWindows 上一条命令交叉编译三个平台build.cmd# windows-amd64 linux-amd64 linux-arm64build.cmd windows# 仅 windows-amd64build.cmd linux# linux-amd64 linux-arm64产物在dist/目录每个平台一份裸二进制 一份发行压缩包zip / tar.gz内含二进制、配置样例、READMECGO_ENABLED0静态编译Linux 产物解压即可部署。快速上手四步启动后打开 Web UIhttp://127.0.0.1:3000信任根证书仅需一次解密 HTTPS 必需Web UI →「证书」→ 下载并一键导入。PulseProxy 的 CA 存放在data/ca/只在本机私钥闭环一键接管系统代理点工具栏「系统代理」按钮浏览器流量立即进入列表也可手动把系统/浏览器代理指向127.0.0.1:8888局域网设备指向本机 IP:8888开始调试流量实时滚动点击任意会话查看 Headers / TextView / JSON / XML / Raw 与分段计时。命令行快速验证代理工作是否正常curl-x127.0.0.1:8888 http://example.com# 明文会话应入列表curl-x127.0.0.1:8888-khttps://example.com# MITM 解密CONNECT 内层会话配置全部字段有默认值以下是一份带注释的最小样例configs/pulseproxy.yamlserver:# Web UI / REST / WebSocketbind:127.0.0.1port:3000proxy:# 抓包代理bind:0.0.0.0# 监听所有网卡手机可连port:8888upstream:# 链式上游代理如 http://127.0.0.1:7890https:decrypt:true# HTTPS 解密总开关domain_policy:# 逐域控制allow 优先于 denyallow:[]deny:[*.bank.example]# 网银类域名不解密sessions:max_count:10000# 会话条数上限超出淘汰最旧max_body_kb:2048# 单 body 保存上限仅保存截断转发不受影响ring_max_mb:512# body 总内存上限log:level:infoHTTPS 开关与逐域策略在 Web UI 设置页修改后热更新生效并自动写回此文件。REST API脚本化集成Web UI 之外所有数据都有 REST 端点方便脚本/CI 消费方法路径说明GET/api/sessions、/api/sessions/:id会话列表 / 详情GET/api/sessions/:id/{request,response}/raw原始报文GET/api/sessions/:id/{request,response}/bodybody?decodeauto|identity|gzip|deflate|brPATCH/api/sessions/:id打标记comment/color/marked/protectedDELETE/api/sessions/:idPOST/api/sessions/clear删除 / 清空PUT/api/capture暂停/恢复抓包{paused: true}GET / PUT/api/settings设置读取 / HTTPS 热更新GET/api/cert/ca?formatpem|crt下载根证书GET / POST/api/system-proxy、/api/system-proxy/enable、/api/system-proxy/restore系统代理状态/接管/恢复GET/api/wsWebSocket 事件流能力边界仅支持HTTP/1.1MITM 侧 ALPN 只回应 http/1.1浏览器自动降级HTTP/2 / QUIC 不支持个别站点走 QUIC 绕过代理时可在chrome://flags/#enable-quic禁用做了**证书固定certificate pinning**的 App 无法解密属所有 MITM 工具的共性限制本机单用户设计Web UI 仅监听 127.0.0.1、无认证不适合直接暴露到公网。写在最后PulseProxy 的目标不是替代 Fiddler 的全部而是把「日常 90% 的抓包调试」做成一个单文件、开浏览器就能用的工具而回到它的起点——内容合规分析——它是流水线最前端的采集层流量进得来、数据出得去、证据留得住。如果你也受够了桌面抓包工具的安装与迁移成本欢迎试试仓库地址https://gitee.com/penngo/ai_projects/tree/master/go/PulseProxy觉得有用请点个 Star遇到问题欢迎提 Issue代码结构如上文所示模块边界清晰也欢迎 PR。抓包愉快
企业数字化 ERP 产品动态
相关推荐
2026最新小企业网站建设系统哪个好,3步避开高价坑 2026最新小企业网站建设系统哪个好,3步避开高价坑 找建站公司怕被坑高价?别慌。2026年市场变了,小企业完全能自己搞定专业官网。别再花冤枉钱。 需求分析:先想清楚你要什么… · 2026/9/27 21:31:28
小型企业网站建设方案:拒绝拖延,拿回源码自主权 小型企业网站建设方案:拒绝拖延,拿回源码自主权 改个需求建站公司拖一周,这种憋屈感谁懂?很多小型企业主和刚入行的开发者都踩过这个坑。合同里写得清清楚楚,页面改个按钮颜色、换个联系方式,对方却以“排期紧张”、“需要走流程”为由,让你干等。更恶… · 2026/9/27 21:31:28
接口幂等怎么做才靠谱?Redis token + 数据库唯一键,我两层都上了 接口幂等怎么做才靠谱?Redis token 数据库唯一键,我两层都上了 导读
求职招聘系统里,“重复提交"是个高频事故源:用户手抖点了两次"投递简历”,前端没拦住,后端就插了两条投递记录;… · 2026/9/27 21:31:16
Hermes起步配置:SOUL.md与主备模型没配好,等于装了个寂寞 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:01:52
模型无关设计:OpenClaw 兼容 GPT、Claude 与本地大模型的配置骨架 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:01:46
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01