⚡ 59 outils de développement, toujours à jour — chaque nouvelle version upstream arrive dans apt en quelques heures. Rejoindre le Discord

📅 À partir du , le miroir apt nécessitera un abonnement. Voir les tarifs · 🆓 Il existe un miroir gratuit pour toujours

🕵️ Installer le dernier mitmproxy sur Debian

Un proxy HTTP d'interception interactif, capable de gérer TLS

Dernière version : 12.2.3 · mis à jour le 2026-09-29
SourceVersion
deb.griffo.io12.2.3 ✅
Debian officiel🚫 non empaqueté
← Retour à l'accueil
📌 Installation sur une version précise ? Debian 12 (bookworm) · Debian 13 (trixie) · Debian 14 (forky) · Debian Sid

Qu'est-ce que mitmproxy ?

mitmproxy est un proxy HTTP d'interception interactif, capable de gérer TLS, pour les testeurs d'intrusion et les développeurs. Faites-y passer un navigateur, un téléphone, un outil en ligne de commande ou un conteneur entier, et chaque requête et chaque réponse transitent là où vous pouvez les voir : en-têtes, corps, temps de réponse, détails TLS. Vous pouvez mettre une requête en pause en plein vol, la modifier puis la laisser repartir, la rejouer cent fois, ou réécrire le trafic automatiquement avec quelques lignes de Python. Il parle HTTP/1, HTTP/2, HTTP/3, WebSocket et TLS brut, et fonctionne en proxy classique, transparent, inverse, amont, SOCKS5, WireGuard ou en capture locale. Un seul paquet vous donne trois interfaces : mitmproxy, l'interface console interactive, mitmweb, la même chose dans votre navigateur, et mitmdump, la version en ligne de commande, un tcpdump pour HTTP.

🚀 Pourquoi la dernière version compte : le mitmproxy des dépôts officiels est la 8.1.1, une version de 2022, et Debian l'a même retiré de trixie. Tout ce qui est venu depuis lui manque : le mode WireGuard, plusieurs modes de proxy dans une seule instance, le mode de capture locale, HTTP/3 complet, l'import et l'export HAR, et des années de correctifs pour les piles TLS et les bizarreries HTTP/2 des vrais serveurs. Un proxy d'interception n'est utile que s'il comprend ce que parlent les clients actuels, et les scripts d'extension écrits d'après la documentation d'aujourd'hui attendent l'API d'aujourd'hui.

⚡ Fonctionnalités clés de mitmproxy

🔓 Voir à l'intérieur de TLS

Au premier lancement, mitmproxy génère sa propre autorité de certification dans ~/.mitmproxy/ et fabrique à la volée un certificat pour chaque hôte visité. Faites confiance à cette CA une fois sur un client et son trafic HTTPS devient lisible, requête par requête.

✋ Intercepter et modifier

Appuyez sur i dans la console, donnez un filtre comme ~d api.example.com, et les requêtes correspondantes s'arrêtent sur place. e modifie la méthode, l'URL, les en-têtes ou le corps, a la laisse repartir.

🔁 Tout rejouer

r rejoue une requête depuis la console. Enregistrez une session avec -w et rejouez le côté client avec --client-replay, ou répondez à un client avec des réponses enregistrées grâce à --server-replay.

🐍 Extensions Python

Chargez un script avec -s script.py et accrochez-vous à chaque requête, réponse, message WebSocket ou poignée de main TLS. Réécrire des en-têtes, simuler des endpoints, retirer le pistage, journaliser dans un fichier : l'API d'extensions est celle sur laquelle mitmproxy construit ses propres fonctions.

🧭 Tous les modes de proxy

Classique, transparent, inverse (--mode reverse:https://example.com), amont, SOCKS5, WireGuard pour les téléphones et les VM, et capture locale d'une seule application. Passez --mode plusieurs fois pour en faire tourner plusieurs en même temps.

🌐 Console, web ou sans interface

La console pilotée au clavier pour un terminal ou une session SSH, mitmweb sur http://127.0.0.1:8081 pour une liste de flux à la souris, et mitmdump pour les scripts, les tâches de CI et les longues captures sans surveillance.

🚀 Toujours en avance sur les dépôts officiels : Debian et Ubuntu gèlent les versions des paquets à la sortie d'une release. Ce dépôt publie les nouvelles versions upstream généralement en quelques heures. Un simple apt upgrade vous garde sur la dernière version.

📦 Installation depuis deb.griffo.io

Exécuter les commandes

Étape 1 : ajouter le dépôt

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt update
install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update
sudo apt install extrepo
sudo extrepo enable griffo
sudo apt update

🆓 Il existe un miroir gratuit pour toujours. deb-free.griffo.io distribue des paquets gratuitement pour toujours — sans compte, sans abonnement, au plus 2 mois derrière l'upstream, correctifs de sécurité immédiats. Il contient aujourd'hui cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud et Zed ; mitmproxy n'en fait pas partie, le dépôt ci-dessus reste donc le seul moyen de l'installer — demandez-le et il pourra y être ajouté.

Comment fonctionne le miroir gratuit →

🧩 À propos de l'option extrepo. extrepo est l'outil de Debian pour les dépôts externes : il écrit le fichier de sources et installe la clé de signature à votre place, après l'avoir vérifiée face à des métadonnées signées. Ce dépôt y est enregistré sous le nom griffo, et le miroir gratuit à vie sous griffo-free ; sur Debian (bookworm, trixie, forky et sid), les commandes ci-dessus constituent donc toute l'installation.

extrepo ne met en place que le fichier de sources et la clé : les identifiants d'un abonnement vont toujours dans /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu n'est pas couvert, car extrepo ne publie de métadonnées que pour les suites Debian : utilisez-y les commandes avec sudo ou en root.

Étape 2 : installer mitmproxy

# Installer le dernier mitmproxy
sudo apt install mitmproxy

# Un paquet, trois commandes : mitmproxy, mitmweb et mitmdump.
# Il embarque son propre Python et OpenSSL, rien d'autre n'est tiré

# Vérifier l'installation
mitmproxy --version
mitmdump --version
# Installer le dernier mitmproxy
apt install mitmproxy

# Un paquet, trois commandes : mitmproxy, mitmweb et mitmdump.
# Il embarque son propre Python et OpenSSL, rien d'autre n'est tiré

# Vérifier l'installation
mitmproxy --version
mitmdump --version

Étape 3 : premier lancement

# Lancer l'interface console, à l'écoute sur le port 8080
mitmproxy

# Ou l'interface web, qui ouvre http://127.0.0.1:8081
mitmweb

# Dans un autre terminal, envoyer une requête à travers lui
curl -x http://127.0.0.1:8080 http://example.com

# Le premier lancement a généré une CA dans ~/.mitmproxy/. Avec un
# client passant par le proxy, ouvrez http://mitm.it pour l'installer
# sur ce client, ou faites-lui confiance pour tout ce système
sudo cp ~/.mitmproxy/mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/mitmproxy.crt
sudo update-ca-certificates
# Lancer l'interface console, à l'écoute sur le port 8080
mitmproxy

# Ou l'interface web, qui ouvre http://127.0.0.1:8081
mitmweb

# Dans un autre terminal, envoyer une requête à travers lui
curl -x http://127.0.0.1:8080 http://example.com

# Le premier lancement a généré une CA dans ~/.mitmproxy/. Avec un
# client passant par le proxy, ouvrez http://mitm.it pour l'installer
# sur ce client, ou faites-lui confiance pour tout ce système
cp ~/.mitmproxy/mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/mitmproxy.crt
update-ca-certificates

🎯 Exemples d'utilisation de base

Capturer le trafic :

# Écouter sur un autre port
mitmproxy --listen-port 9090

# Faire passer une seule commande par le proxy
HTTPS_PROXY=http://127.0.0.1:8080 curl https://example.com

# Tout enregistrer dans un fichier, sans interface
mitmdump -w session.mitm

# N'afficher que les requêtes vers un hôte
mitmdump "~d api.example.com"

# Écrire un fichier HAR pour les outils de développement ou un rapport de bogue
mitmdump --set hardump=./session.har

Rejouer et inspecter :

# Ouvrir une session enregistrée dans la console
mitmproxy -r session.mitm

# Afficher ses requêtes POST sans démarrer de proxy
mitmdump -n -r session.mitm "~m POST"

# Renvoyer les requêtes enregistrées
mitmdump -n --client-replay session.mitm

# Répondre aux clients avec les réponses enregistrées au lieu du vrai serveur
mitmdump --server-replay session.mitm

Modes de proxy et extensions :

# Proxy inverse devant un seul serveur
mitmproxy --mode reverse:https://example.com --listen-port 8443

# SOCKS5 et un proxy classique depuis la même instance
mitmdump --mode socks5 --mode regular

# WireGuard : scannez le QR code de mitmweb avec l'app WireGuard d'un téléphone
mitmweb --mode wireguard

# Réécrire le trafic avec une extension Python, par ex. addon.py contenant :
#   def response(flow):
#       flow.response.headers["x-seen-by"] = "mitmproxy"
mitmdump -s addon.py

🔧 Intégrations

mitmproxy se place entre les outils que vous utilisez déjà et le réseau auquel ils parlent :

  • curl, wget et la plupart des CLI : tout ce qui respecte HTTP_PROXY et HTTPS_PROXY passe par mitmproxy avec une seule variable d'environnement, et curl -x le fait commande par commande
  • Navigateurs et téléphones : réglez le proxy sur le port 8080, ouvrez http://mitm.it et installez la CA pour cette plateforme, ou utilisez le mode WireGuard sur Android et iOS sans aucun réglage de proxy
  • Outils de développement du navigateur : hardump écrit un fichier HAR, et mitmproxy relit les fichiers HAR avec -r : une capture circule entre lui et Chrome ou Firefox dans les deux sens
  • Extensions Python : les scripts chargés avec -s tournent dans le Python embarqué de mitmproxy ; ils peuvent importer la bibliothèque standard et ce que mitmproxy fournit, mais pas les paquets installés pour le python3 du système
  • Suites de tests et CI : mitmdump avec --server-replay sert des réponses enregistrées, ce qui rend reproductibles dans les tests d'intégration les API tierces capricieuses

🚀 Pourquoi choisir deb.griffo.io ?

📊 Comparaison des dépôts :
  • Debian officiel : la 8.1.1 de 2022 dans bookworm, forky et sid, et rien du tout dans trixie, la stable actuelle
  • pipx ou pip : à jour, mais lié au Python système que vous avez et invisible pour apt
  • L'archive upstream : la même compilation autonome que ce paquet, décompressée à la main et mise à jour à la main
  • deb.griffo.io: dernière version avec mises à jour automatiques

📦 Dépôt de construction du paquet

Les paquets Debian sont construits et maintenus automatiquement dans ce dépôt GitHub :

🔗 Paquets associés

Également disponibles sur deb.griffo.io :

🎯 Parfait pour : voir exactement ce qu'une application mobile ou un outil en ligne de commande envoie à son backend, déboguer les redirections OAuth et les cookies, tester comment un client réagit à une API lente ou cassée, faire des tests d'intrusion sur des applications web, et transformer un test manuel ponctuel en script Python reproductible.

📦 Dernières versions publiées par ce dépôt

❓ Questions fréquentes

mitmproxy est-il dans les dépôts officiels de Debian ?

Non, mitmproxy n'est pas empaqueté dans les archives officielles de Debian. Ce dépôt est actuellement la seule source apt et propose mitmproxy 12.2.3.

Comment installer le dernier mitmproxy sur Debian ?

Ajoutez le dépôt deb.griffo.io une seule fois (instructions ci-dessus), puis exécutez : sudo apt install mitmproxy. Les nouvelles versions arrivent via le sudo apt upgrade habituel.

Les paquets sont-ils signés et comment sont-ils construits ?

Chaque paquet est signé avec la clé GPG du dépôt (EA0F721D231FDD3A0A17B9AC7808B4DD62C41256) et construit à partir des versions upstream dans des dépôts GitHub publics que chacun peut inspecter.

Quelles versions de Debian sont prises en charge ?

Debian 12 Bookworm, Debian 13 Trixie, Forky et Sid.