
oproxy v0.1.11
Proxy MITM open-source pour intercepter, inspecter et simuler le trafic réseau.
oproxy
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.
Points forts
- Capture du trafic HTTP et HTTPS, avec prise en charge du MITM pour HTTPS.
- Inspection des en-têtes, corps, statuts, timings, tags, notes, JWT, GraphQL, métadonnées gRPC et trames WebSocket.
- Rejeu des requêtes capturées ou modification de celles-ci dans Compose.
- Export des captures au format HAR, cURL, Fetch ou extraits Python.
- Modification du trafic avec des règles, des mocks, map-local/map-remote, des règles d'accès, la limitation de débit, des points d'arrêt, des substitutions DNS, des scripts Lua et le chaînage de proxys upstream.
- Utilisation de l'Assistant pour inspecter les sessions, comprendre l'état du proxy et préparer des modifications confirmées via un modèle de chat compatible OpenAI.
- Exécution depuis Docker, Docker Compose ou les sources.
Démarrage rapide
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
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
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.
Sources
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.
Première capture
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.
Démo


En savoir plus
- Prise en main
- Docker
- MITM HTTPS
- Assistant
- Configuration
- Sécurité
- Dépannage
- Architecture
- Contribution
Licence
oproxy est distribué sous licence MIT.