oproxy: un proxy MITM local y de código abierto para depurar tráfico

Fuentes: oproxy: an open-source local MITM proxy to inspect and modify traffic
Imagen generada por IA con el prompt: Minimal dark-themed developer interface showing a network proxy dashboard with request/response panels, a terminal window with a curl command, and a stylized padlock icon representing HTTPS inspection. No real faces or b
Imagen generada con IA

oproxy es un proxy local de código abierto, publicado bajo licencia MIT, diseñado para interceptar, inspeccionar, reproducir y modificar tráfico de red HTTP, HTTPS y SOCKS5 desde la propia máquina del desarrollador o dentro de un contenedor Docker. La herramienta combina un núcleo escrito en Rust con una interfaz de gestión en Node.js y se orienta a profesionales que necesitan depurar navegadores, interfaces de línea de comandos, aplicaciones móviles, clientes de API, servicios backend y suites de pruebas sin alterar el código de la aplicación.

Su funcionamiento sigue el esquema clásico de un proxy man-in-the-middle: el cliente se configura para enviar el tráfico a oproxy en 127.0.0.1:8080 y la herramienta lo registra y lo muestra. Para capturar HTTPS, oproxy genera una autoridad certificadora (CA) local que debe instalarse como confiable en el navegador o en el sistema operativo; a partir de ahí descifra el tráfico CONNECT y registra cabeceras, cuerpos, códigos de estado, tiempos, etiquetas y notas. Las sesiones capturadas pueden guardarse y exportarse como HAR, cURL, Fetch o fragmentos de Python, lo que facilita la reproducción de errores y la generación de fixtures de prueba.

Entre las funciones de modificación incluye conjuntos de reglas, redirecciones remotas (map-remote) y locales (map-local), controles de acceso, limitación de ancho de banda, puntos de interrupción, respuestas simuladas, anulaciones de DNS, filtros de captura, scripts en Lua y encadenamiento con proxies ascendentes. Incorpora además un asistente autenticado que utiliza un modelo de chat compatible con la API de OpenAI para inspeccionar el estado de la sesión y proponer cambios confirmados por el usuario.

Casos de uso habituales son depurar una petición del navegador sin tocar el código, reproducir una solicitud tras editar cabeceras o cuerpo, probar un frontend frente a mocks o fixtures locales, enrutar parte del tráfico a un entorno de staging, simular respuestas lentas o de bajo ancho de banda, y validar el comportamiento de un cliente cuando se bloquean, redirigen o reescriben peticiones. Como contrapartida, la compilación local exige Rust 1.85 o superior y Node.js 22 o superior, con la interfaz construida mediante Yarn a través de Corepack; la alternativa es la imagen oficial en GitHub Container Registry (ghcr.io/sauravrao637/oproxy:latest), que simplifica la puesta en marcha y persiste certificados y estado local mediante volúmenes Docker.