
新发布Jul 31, 2026
oproxy v0.1.10
开源的 MITM 代理,用于拦截、检查和模拟网络流量。
oproxy
oproxy 是一个本地 HTTP、HTTPS 和 SOCKS5 代理,用于检查、重放和修改流量。
它面向开发人员,供他们在自己的机器或本地 Docker 容器中测试浏览器、CLI、移动应用、API 客户端、服务及测试套件。
功能
- 信任本地 oproxy CA 后捕获 HTTP 和 HTTPS 流量。
- 查看请求、响应、标头、正文、状态、时序、标签、备注以及选定的检查器数据。
- 重放捕获的请求并在 Compose 中打开它们。
- 使用标头、查询参数、认证、原始正文、变量、集合和 cURL 导出构建手动请求。
- 将捕获导出为 HAR 或生成的 cURL、Fetch 和 Python 代码片段。
- 通过规则集、map-remote、map-local、访问规则、限流、断点、模拟响应、DNS 覆盖、捕获过滤器、Lua 脚本和上游代理链来修改流量。
- 使用经过认证的 Assistant 通过兼容 OpenAI 的聊天模型检查状态并准备已确认的代理更改。
- 从源码或 Docker 运行,并使用持久化卷保存 CA 材料和本地状态。
演示
快速入门
Docker
docker run --rm \
--name oproxy \
-p 127.0.0.1:8080:8080 \
-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 build -t oproxy:latest .
Docker Compose
docker compose up --build
随附的 Compose 文件使用桥接网络并发布环回端口,持久化 /app/certs 和 /app/storage,并设置 OPROXY_BIND_HOST=0.0.0.0。Linux 用户可以选择启用主机网络。
源码
要求:
- 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
该请求会出现在“会话”视图中。
首次 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 流量,请将 http://127.0.0.1:8080/admin/ca 中的 CA 安装到浏览器或操作系统的信任库中。
它能做什么
- 在
OPROXY_PORT/port上充当正向 HTTP 代理,默认8080。 - 在同一监听器上提供本地管理 UI 和 API。
- 当启用 MITM 且客户端信任生成的 CA 时,拦截 HTTPS CONNECT 流量。
- 可选择在
socks5_port上监听 SOCKS5 CONNECT 流量。 - 可选择使用
https_port运行第二个 TLS 监听器。 - 在内存中捕获实时会话,并限制会话和正文的保留量。
- 通过管理端点显式保存和加载会话。
- 导出 HAR、cURL、Fetch 和 Python 代码片段,默认经过脱敏处理。
- 导入 HAR 文件和 oproxy JSON 会话数据。
- 使用服务器发送事件流式传输会话变更通知。
- 在捕获到匹配流量时检查 JWT、GraphQL、gRPC 和 WebSocket 帧元数据。
使用场景
- 调试浏览器或 CLI 请求,无需更改应用程序代码。
- 在 Compose 中编辑标头或正文后重放捕获的请求。
- 使用模拟响应或本地夹具文件测试前端。
- 将部分流量路由到预发布服务。
- 重现缓慢或带宽受限的响应。
- 在匹配的请求或响应继续之前将其暂停。
- 验证当请求被阻止、重定向或重写时客户端的行为。
截图


文档
许可证
MIT