
oproxy v0.1.10
Proxy MITM de código abierto para interceptar, inspeccionar y simular tráfico de red.
oproxy
oproxy es un proxy HTTP, HTTPS y SOCKS5 local para inspeccionar, reproducir y modificar tráfico.
Está pensado para desarrolladores que prueban navegadores, CLIs, aplicaciones móviles, clientes de API, servicios y suites de pruebas en su propia máquina o en un contenedor Docker local.
Características
- Captura tráfico HTTP y HTTPS después de confiar en la CA local de oproxy.
- Consulta solicitudes, respuestas, cabeceras, cuerpos, estado, tiempos, etiquetas, notas y datos seleccionados del inspector.
- Reproduce solicitudes capturadas y ábrelas en Compose.
- Construye solicitudes manuales con cabeceras, parámetros de consulta, autenticación, cuerpos sin procesar, variables, colecciones y exportación a cURL.
- Exporta capturas como HAR o fragmentos generados de cURL, Fetch y Python.
- Modifica el tráfico con conjuntos de reglas, map-remote, map-local, reglas de acceso, limitación de ancho de banda, puntos de interrupción, respuestas simuladas, anulaciones de DNS, filtros de captura, scripts Lua y encadenamiento de proxy ascendente.
- Usa el Asistente autenticado para inspeccionar el estado y preparar cambios de proxy confirmados a través de un modelo de chat compatible con OpenAI.
- Ejecútalo desde el código fuente o Docker con volúmenes persistentes para el material de la CA y el estado local.
Demostración
Inicio rápido
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
Abre http://127.0.0.1:8080 e inicia sesión con el token.
O compila localmente:
docker build -t oproxy:latest .
Docker Compose
docker compose up --build
El archivo Compose incluido usa red en modo puente con puertos publicados en loopback, persiste /app/certs y /app/storage, y define OPROXY_BIND_HOST=0.0.0.0. Los usuarios de Linux pueden habilitar opcionalmente la red del host.
Código fuente
Requisitos:
- Rust 1.85 o superior
- Node.js 22 o superior
- Yarn mediante Corepack
corepack enable
yarn --cwd src/design install --frozen-lockfile
yarn --cwd src/design build
cargo run --release
Abre http://127.0.0.1:8080.
Primera solicitud
curl -x http://127.0.0.1:8080 http://example.com
La solicitud aparece en la vista de Sesiones.
Primera captura 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
Para capturar HTTPS desde el navegador, instala la CA desde http://127.0.0.1:8080/admin/ca en el almacén de confianza del navegador o del sistema operativo.
Qué puede hacer
- Actúa como proxy HTTP directo en
OPROXY_PORT/port, por defecto8080. - Sirve la interfaz de administración y la API local desde el mismo listener.
- Intercepta el tráfico HTTPS CONNECT cuando MITM está habilitado y el cliente confía en la CA generada.
- Opcionalmente, escucha tráfico SOCKS5 CONNECT en
socks5_port. - Opcionalmente, ejecuta un segundo listener TLS con
https_port. - Captura sesiones en vivo en memoria con retención limitada de sesiones y cuerpos.
- Guarda y carga sesiones explícitamente con endpoints de administración.
- Exporta fragmentos HAR, cURL, Fetch y Python, redactados por defecto.
- Importa archivos HAR y datos de sesión JSON de oproxy.
- Transmite notificaciones de cambios de sesión con eventos enviados por el servidor.
- Inspecciona los metadatos de tramas JWT, GraphQL, gRPC y WebSocket cuando se captura tráfico coincidente.
Casos de uso
- Depura una solicitud de navegador o CLI sin cambiar el código de la aplicación.
- Reproduce una solicitud capturada tras editar cabeceras o cuerpo en Compose.
- Prueba un frontend contra respuestas simuladas o archivos de prueba locales.
- Enruta un subconjunto del tráfico a un servicio de staging.
- Reproduce respuestas lentas o con ancho de banda limitado.
- Pausa solicitudes o respuestas coincidentes antes de que continúen.
- Valida cómo se comporta un cliente cuando las solicitudes se bloquean, redirigen o reescriben.
Capturas de pantalla


Documentación
- Primeros pasos
- Docker
- HTTPS MITM
- Compose
- Asistente
- Map Local
- Anulaciones de DNS
- SOCKS5
- Configuración
- Solución de problemas
- Seguridad
Licencia
MIT