
Proxy MITM open-source pour intercepter, inspecter et simuler le trafic réseau.
oproxy est un proxy local HTTP, HTTPS, HTTP/3, WebSocket et SOCKS5 permettant d'inspecter, de rejouer et de modifier le trafic provenant de navigateurs, CLI, applications mobiles, clients API, services et suites de tests.
Il exécute une interface web, une API et un assistant IA optionnel sur le même listener local, ce qui vous permet de capturer le trafic, d'inspecter les requêtes et les réponses, de rejouer des requêtes, de simuler des upstreams, de réécrire le trafic, de limiter le débit des réponses et d'exporter des extraits reproductibles sans modifier le code de l'application.
L'Assistant est un client de plan de contrôle compatible OpenAI : il peut inspecter l'état actuel du proxy via des outils autorisés et préparer des modifications de trafic/configuration sous forme de cartes de confirmation à valider.
Note de sécurité : l'interception HTTPS nécessite de faire confiance à une autorité de certification racine oproxy locale. Installez cette AC uniquement sur les machines et navigateurs que vous contrôlez, conservez la clé privée générée en lieu sûr et n'exposez pas l'interface d'administration sans un jeton fort.
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
Ouvrez http://127.0.0.1:8080 et connectez-vous avec le jeton.
Le réseau bridge de Docker nécessite OPROXY_BIND_HOST=0.0.0.0. La commande ci-dessus publie toujours les ports uniquement sur le loopback de l'hôte. Modifiez OPROXY_ADMIN_TOKEN avant toute utilisation réelle.
docker compose up --build
Le fichier Compose versionné active le MITM, HTTP/3 sur UDP 8443, la persistance des certificats et de l'état, ainsi qu'un healthcheck.
Prérequis : Rust 1.85+, Node.js 22+ et Yarn via Corepack.
corepack enable
yarn --cwd src/design install --frozen-lockfile
yarn --cwd src/design build
cargo run --release
Ouvrez http://127.0.0.1:8080.
curl -x http://127.0.0.1:8080 http://example.com
La requête apparaît dans la vue Sessions.
Pour 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
Pour capturer le HTTPS d'un navigateur, configurez le navigateur ou le système d'exploitation pour utiliser 127.0.0.1:8080 comme proxy HTTP et HTTPS, puis importez l'AC depuis http://127.0.0.1:8080/admin/ca.


oproxy est distribué sous licence MIT.