
oproxy v0.1.11
开源的 MITM 代理,用于拦截、检查和模拟网络流量。
oproxy
oproxy 是一个本地 HTTP、HTTPS、HTTP/3、WebSocket 和 SOCKS5 代理,用于检查、重放和修改来自浏览器、CLI、移动应用、API 客户端、服务和测试套件的流量。
它在同一个本地监听器上运行 Web UI、API 和可选的 AI 助手,因此你可以在不更改应用程序代码的情况下捕获流量、检查请求和响应、重放请求、模拟上游、重写流量、限制响应速度并导出可复现的代码片段。
助手是一个与 OpenAI 兼容的控制平面客户端:它可以通过允许列表中的工具检查当前代理状态,并将流量/配置更改准备为可审查的确认卡片。
安全提示:HTTPS 拦截需要信任本地 oproxy 根 CA。仅在你控制的机器和浏览器上安装该 CA,妥善保管生成的私钥,并且在没有强令牌的情况下不要暴露管理 UI。
亮点
- 捕获 HTTP 和 HTTPS 流量,并支持 HTTPS 的 MITM。
- 检查标头、正文、状态、时序、标签、备注、JWT、GraphQL、gRPC 元数据和 WebSocket 帧。
- 重放捕获的请求或在 Compose 中编辑它们。
- 将捕获导出为 HAR、cURL、Fetch 或 Python 代码片段。
- 使用规则、模拟、map-local/map-remote、访问规则、限流、断点、DNS 覆盖、Lua 脚本和上游代理链来修改流量。
- 使用助手检查会话、了解代理状态,并通过与 OpenAI 兼容的聊天模型准备已确认的更改。
- 从 Docker、Docker Compose 或源码运行。
快速开始
Docker
docker run --rm \
--name oproxy \
-p 127.0.0.1:8080:8080 \
-p 127.0.0.1:1080:1080 \
-p 127.0.0.1:8443:8443/udp \
-e OPROXY_BIND_HOST=0.0.0.0 \
-e OPROXY_MITM_ENABLED=true \
-e OPROXY_HTTP3_ENABLED=true \
-e OPROXY_HTTP3_PORT=8443 \
-e OPROXY_ALLOW_REMOTE_ADMIN=true \
-e OPROXY_ADMIN_TOKEN=change-me-to-a-strong-secret \
-v oproxy-certs:/app/certs \
-v oproxy-storage:/app/storage \
ghcr.io/sauravrao637/oproxy:latest
打开 http://127.0.0.1:8080 并使用令牌登录。
Docker 桥接网络需要 OPROXY_BIND_HOST=0.0.0.0。上述命令仍然只在主机回环地址上发布端口。在实际使用前更改 OPROXY_ADMIN_TOKEN。
Docker Compose
docker compose up --build
已检入的 Compose 文件启用了 MITM、UDP 8443 上的 HTTP/3、持久化证书/状态以及健康检查。
源码
要求:Rust 1.85+、Node.js 22+,以及通过 Corepack 安装的 Yarn。
corepack enable
yarn --cwd src/design install --frozen-lockfile
yarn --cwd src/design build
cargo run --release
打开 http://127.0.0.1:8080。
首次捕获
curl -x http://127.0.0.1:8080 http://example.com
该请求会出现在 Sessions 视图中。
对于 HTTPS:
curl http://127.0.0.1:8080/admin/ca -o oproxy-ca.crt
curl --cacert oproxy-ca.crt -x http://127.0.0.1:8080 https://example.com
对于浏览器 HTTPS 捕获,将浏览器或操作系统配置为使用 127.0.0.1:8080 作为 HTTP 和 HTTPS 代理,然后从 http://127.0.0.1:8080/admin/ca 导入 CA。
演示


了解更多
许可证
oproxy 根据 MIT 许可证 授权。