v0.1.0 · MIT 开源
看清每一个请求就在你自己的电脑上
Reqeek 在本机启动一个 HTTP/HTTPS 代理,把经过的每一个请求记下来 —— 方法、状态码、耗时、首字节时间、完整 body。不装驱动,不改路由器,流量不离开这台机器。
适用于 macOS 与 Windows
点击域名分组可以展开请求明细,切换上方的类型标签可以过滤列表。
该记下的都记下了
从明文 HTTP 到解密后的 HTTPS,从请求头到响应 body,Reqeek 把一次请求的完整面貌摊开给你看。
HTTP 抓包
转发明文 HTTP 请求,记录方法、URL、状态码、耗时、首字节时间(TTFB)和上下行流量大小。
HTTPS 解密
为 CONNECT 请求按需签发站点证书,解密后能看到请求头、响应头和完整 body。握手失败的域名会自动回退为透明隧道。
WebSocket
支持明文 ws 和解密后的 wss。升级成功后按裸字节流转发,并统计双向流量。
请求详情
Headers、Payload、Preview、Response、Timing 五个面板。JSON 与 XML 以可折叠树形展示,图片和 HTML 可以就地预览。
来源应用
按客户端源端口反查发起请求的本机应用。左侧栏按应用汇总请求数,点一下就能只看某个应用的流量。
过滤与搜索
按资源类型、关键词过滤,支持反选搜索、仅看错误、隐藏隧道。列表按域名分组,各列可排序。
系统代理管理
开始抓包时自动设置系统代理,停止或退出时还原。改动前先把原有配置落盘成快照,端口绑定失败就不会动你的网络设置。
证书管理
在应用内生成根 CA、安装并信任、查看信任状态、一键卸载,不必自己去翻钥匙串或证书管理器。
它是怎么工作的
没有内核扩展,没有网卡驱动,也没有流量上云。Reqeek 用的就是最朴素的办法:一个跑在本机上的代理。
- 1
先确认根证书已受信任
点击「开始抓包」后,Reqeek 先检查根 CA 是否处于「已信任」状态。没有信任就拒绝启动,界面停在证书安装引导页 —— 与其让你对着一个什么都抓不到的窗口发愣,不如先把这一步说清楚。
- 2
起代理,再接管系统代理
在 127.0.0.1 上启动代理。端口绑定成功之后才去修改系统代理设置,避免端口被占用时把你搞断网。
- 3
转发并记录
明文 HTTP 直接转发并记录。HTTPS 请求通过 CONNECT 进入代理,默认只对 443 端口解密;Apple 推送和 OCSP 域名被内置排除,只记录域名、流量大小和时长。
- 4
停止时按原样还原
停止抓包时先还原系统代理,再关闭代理服务。如果应用异常退出,下次启动会按之前落盘的快照把系统代理还原回去。
几个你可能会问的默认值
这些数字都写在源码里,不是猜的。
- 监听地址
- 127.0.0.1
- 只接受本机连接,局域网里的其他设备连不上
- 代理端口
- 8989
- 可在设置里改成 1024–65535 之间的任意端口
- 默认解密范围
- 443 端口
- 其余端口直接走隧道
- 内置排除域名
- push.apple.com 等
- 含 push.services.apple.com 与全部 OCSP 域名,始终不解密
- 单个 body 保留上限
- 5 MiB
- 超出部分只计数,不保留内容
- 详情内存预算
- 64 MiB
- 按整条记录 LRU 淘汰,抓到的内容不会写到磁盘上
- 根 CA 有效期
- 10 年
- 站点证书有效期 199 天,按域名缓存 512 个
平台支持
macOS 和 Windows 都能完整使用。Linux 目前还不能抓包。
| 能力 | macOS | Windows | Linux |
|---|---|---|---|
| 自动设置系统代理 | 可用 | 可用 | 不可用 |
| 自动安装并信任根证书 | 可用 | 可用 | 不可用 |
| 开始抓包 | 可用 | 可用 | 不可用 |
| 按来源应用筛选 | 可用 | 可用 | 不可用 |
Linux 只有打包配置,没有系统代理和证书信任的驱动实现:证书信任状态恒为「当前系统不支持自动安装」,而开始抓包要求证书处于已信任状态,因此启动会被拒绝。CI 也不构建 Linux 安装包。
Windows 的系统代理与证书信任驱动按公开文档实现,尚未在真机上完整验证。遇到问题欢迎提 issue。
快捷键
抓包、清空、搜索都不用离开键盘。
- 开始 / 停止抓包Cmd/Ctrl+R
- 清空记录Cmd/Ctrl+K
- 搜索请求Cmd/Ctrl+F
- 打开设置Cmd/Ctrl+,
- 在请求列表中上下移动↑+↓
关于安全和隐私
抓包工具能看到你所有的流量,所以它自己得先值得信任。
只监听本机
代理固定绑定 127.0.0.1,不接受来自局域网或公网的连接。
私钥留在这台电脑上
根 CA 的证书和私钥存放在应用数据目录,目录权限 0700、私钥文件 0600。持有这张私钥的人可以伪造任意 HTTPS 站点,请不要分享 ca.key。
抓到的内容不落盘
请求明细只保存在内存里,按 64 MiB 预算 LRU 淘汰。退出应用后不留痕迹。
应用本身不联网
Reqeek 不会把任何数据回传出去,没有账号、没有统计、没有遥测。
同一时间只跑一个实例
单实例锁避免两个实例互相还原对方的系统代理设置。
下载 Reqeek
当前版本 v0.1.0,选一个跟你机器匹配的安装包。
下载链接指向 GitHub Releases。如果访问缓慢,可以试试国内的加速转发。
查看全部版本首次打开时的系统提示
- macOS
- macOS 版本是 ad-hoc 签名,没有做 Apple 公证。首次打开会被 Gatekeeper 拦下,请在「系统设置 → 隐私与安全性」里选择「仍要打开」,或在访达里右键应用图标选「打开」。
- Windows
- Windows 版本没有配置代码签名证书,SmartScreen 可能会提示「Windows 已保护你的电脑」。点「更多信息」再点「仍要运行」即可。
常见问题
为什么必须安装并信任根证书?
解密 HTTPS 本质上就是中间人。Reqeek 在本机生成一张根 CA,用它为每个访问的站点现场签发一张临时证书。只有系统信任了这张根 CA,浏览器才愿意接受这些证书;否则 HTTPS 流量只能以隧道形式记录域名、流量和时长,看不到内容。
有些应用的请求解密不了,是坏了吗?
不是。使用证书固定(certificate pinning)的应用会主动拒绝被解密,这是它们的安全设计。Reqeek 在握手失败后会把该域名加入排除列表,之后不再尝试解密,只按隧道记录,不会再反复失败。
macOS 提示「无法验证开发者」或「已损坏」怎么办?
当前版本使用 ad-hoc 签名,没有做 Apple 公证。首次打开时,请在「系统设置 → 隐私与安全性」里找到被拦下的提示,选择「仍要打开」;或者在访达里右键应用图标,选「打开」,再在弹窗里确认一次。
Linux 上为什么不能抓包?
Linux 目前只有 electron-builder 的打包配置,没有系统代理与证书信任的驱动实现。证书信任状态恒为「当前系统不支持自动安装」,而开始抓包要求证书处于已信任状态,所以启动会被直接拒绝。CI 也不构建和上传 Linux 安装包。
端口 8989 被占用了怎么办?
在设置里改端口即可,范围是 1024 到 65535。Reqeek 会先确认新端口绑定成功,再去修改系统代理设置 —— 端口被占用时你的网络不会被改坏。
卸载后系统代理会残留吗?
正常停止抓包或退出应用时会自动还原。如果强制结束了进程,下次启动 Reqeek 会按之前落盘的快照把系统代理还原回去。你也可以随时在「系统设置 → 网络 → 代理」里手动关闭。