Wireshark est le principal analyseur de trafic réseau open source, utilisé pour la capture et l'inspection de paquets en temps réel. L'outil prend en charge plus de deux mille protocoles réseau et fonctionne sur toutes les principales plateformes. Selon le Wireshark User Guide (2026), l'utilitaire est utilisé pour le diagnostic des réseaux, le débogage d'API et l'analyse de sécurité dans le développement mobile et web.
L'essentiel
Wireshark est un programme open source (GPLv2) qui capture les paquets de données passant par l'interface réseau de l'ordinateur. Il repose sur la bibliothèque libpcap (Unix) ou Npcap (Windows) pour la capture au niveau de la couche de liaison du modèle OSI.
En mode normal, une carte réseau ne reçoit que les trames adressées à son adresse MAC. Wireshark bascule l'interface en mode promiscuous (indiscriminé), dans lequel le système traite toutes les trames qui passent, quel que soit le destinataire. Les données capturées sont transmises au noyau via un raw socket, après quoi la bibliothèque libpcap les copie dans l'espace utilisateur pour analyse.
Wireshark utilise une architecture modulaire : chaque protocole est implémenté comme un dissector distinct — un plugin qui analyse les données binaires et les affiche de manière structurée. En 2026, le programme implémente des dissectors pour 2 874 protocoles, dont HTTP/2, QUIC, gRPC et MQTT. Les dissectors fonctionnent via le système d'arborescence de protocoles — chaque paquet est analysé couche par couche : de la trame Ethernet au niveau application.
// Exemple d'un dissector simple pour un protocole personnalisé
static int dissect_custom(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, void *data) {
proto_item *ti = proto_tree_add_item(tree, hf_custom_field,
tvb, 0, tvb_captured_length(tvb), ENC_NA);
return 0;
}
L'interface graphique de Wireshark est divisée en trois panneaux : liste des paquets (packet list), détails des protocoles (packet details) et dump hexadécimal (packet bytes). Chaque panneau est mis à jour en temps réel et prend en charge la navigation interactive — un clic sur une ligne de paquet ouvre sa structure complète.
L'outil lit les fichiers de capture aux formats pcap, pcapng, snoop et NetMon. L'export est possible vers JSON, XML, CSV et texte brut. Parmi les principaux protocoles de la couche application figurent HTTP/HTTPS, DNS, DHCP, TCP, UDP, TLS, QUIC, WebSocket, MQTT, AMQP et Protobuf. Pour le développement mobile, la prise en charge de gRPC et de HTTP/2 avec multiplexage des flux est particulièrement importante.
Les utilitaires intégrés incluent Follow Stream (reconstruction du dialogue complet TCP/UDP/TLS), IO Graph (graphique de débit), statistiques des conversations (Conversations) et hiérarchie des protocoles (Protocol Hierarchy). La fonction Flow Graph visualise la séquence des paquets entre les nœuds, ce qui facilite la recherche des causes de latence lors du débogage de l'interaction client-serveur.
Le lancement de la capture commence par la sélection d'une interface réseau — Ethernet, Wi-Fi, Bluetooth PAN ou Loopback. Sur Windows, l'installation de Npcap en mode WinPcap API Compatible Mode peut être nécessaire. Pour la capture sur les appareils mobiles, on utilise Remote Packet Capture via un tunnel SSH.
Sur un appareil Android, le trafic est capturé avec tcpdump ou PCAPdroid, puis le fichier est transféré vers l'ordinateur de travail. La commande de capture à distance via ADB :
# Capture du trafic sur Android via ADB shell
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# Copie sur l'ordinateur
adb pull /sdcard/capture.pcap .
Sur Windows, le trafic localhost (127.0.0.1) ne passe pas par une interface physique, donc Wireshark ne le voit pas directement. La solution consiste à installer Npcap avec l'option Loopback Support ou à rediriger le trafic via RawCap. Sous Linux et macOS, l'interface loopback (lo) est capturée sans configuration supplémentaire.
Wireshark propose deux types de filtres : les capture filters (appliqués avant la capture, au niveau de libpcap) et les display filters (appliqués aux données déjà capturées). Les capture filters utilisent la syntaxe BPF (Berkeley Packet Filter), les display filters — le langage propre de Wireshark avec autocomplétion.
Les filtres BPF sont écrits au format tcpdump et exécutés dans le noyau, ce qui minimise la perte de paquets en cas de charge élevée. Exemples de filtres :
| Filtre | Fonction |
|---|---|
| tcp port 80 | Trafic HTTP uniquement sur le port standard |
| host 192.168.1.1 | Paquets d'un hôte spécifique |
| not arp | Tous les paquets sauf les requêtes ARP |
Les display filters sont appliqués après coup et prennent en charge des conditions complexes avec les opérateurs logiques and, or, not. Exemple : http.request.method == "POST" and ip.src == 192.168.0.100 filtrera uniquement les requêtes POST d'une IP spécifique. Les filtres peuvent être enregistrés comme favoris pour une réutilisation.
Le trafic HTTP est affiché dans Wireshark sous une forme lisible : méthode de requête, URI, en-têtes et corps de la réponse. La fonction Follow TCP Stream rassemble le dialogue complet entre le client et le serveur dans une seule fenêtre. Pour HTTPS, le déchiffrement des sessions TLS est nécessaire, car le contenu est chiffré.
Les navigateurs Chrome et Firefox prennent en charge la variable d'environnement SSLKEYLOGFILE, qui écrit les clés de session TLS dans un fichier texte. Wireshark utilise ce fichier pour déchiffrer les enregistrements. La configuration s'effectue via Preferences → Protocols → TLS → (Pre)-Master-Secret log filename.
# Lancer Chrome avec l'enregistrement des clés TLS
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .
# Après la capture, indiquer le chemin dans Wireshark
# Edit → Preferences → Protocols → TLS → Log Filename
gRPC utilise HTTP/2 comme transport et Protobuf pour la sérialisation des données. Wireshark déchiffre les messages gRPC si un fichier .proto avec les définitions des structures est fourni. Le dissector Protobuf associe les champs binaires aux noms du fichier proto, ce qui est essentiel lors du débogage d'une architecture de microservices.
Le débogage mobile avec Wireshark nécessite de faire transiter le trafic de l'appareil vers l'ordinateur. La méthode la plus fiable consiste à créer un point d'accès Wi-Fi sur l'ordinateur portable et à rediriger le trafic via NAT. Sur Android, la méthode VPN avec l'application PCAPdroid est également disponible sans droits root.
PCAPdroid crée un service VPN local qui redirige le trafic des applications vers Wireshark via un flux UDP. L'application ne nécessite pas d'accès root et prend en charge le filtrage par processus individuels. Les fichiers pcap obtenus sont ouverts dans Wireshark pour une analyse complète.
# Réception du trafic de PCAPdroid sur l'ordinateur
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap
Wireshark est un outil universel, mais pour des tâches spécifiques, il existe des solutions plus spécialisées. tcpdump est plus efficace pour la capture serveur sans graphisme, Charles Proxy est plus pratique pour analyser le trafic HTTPS, et Fiddler — pour l'inspection du trafic web avec la possibilité de modifier les requêtes à la volée.
Charles Proxy agit comme un serveur proxy intermédiaire capable d'intercepter HTTPS via sa propre certification SSL. Contrairement à Wireshark, Charles ne nécessite pas la configuration de SSLKEYLOGFILE et peut non seulement visualiser, mais aussi modifier le trafic — remplacer les réponses, simuler des latences et rejouer des requêtes.
Fiddler est un autre outil proxy populaire dans l'écosystème .NET. Il fournit un éditeur de requêtes intégré, le support d'AutoResponder pour les mocks et un composer pour créer des requêtes personnalisées. Fiddler est mieux adapté à l'analyse du trafic web du navigateur, Wireshark — à l'analyse réseau de bas niveau.
| Outil | Type | HTTPS sans clés | Modification du trafic |
|---|---|---|---|
| Wireshark | Sniffer | Non (SSLKEYLOGFILE requis) | Visualisation uniquement |
| Charles | Proxy | Oui (certificat personnalisé) | Oui |
| Fiddler | Proxy | Oui (certificat personnalisé) | Oui |
| tcpdump | Sniffer | Non | Visualisation uniquement |
Wireshark exige une compréhension des principes de base de la capture du trafic. L'un des scénarios fréquents consiste à rechercher la source des latences dans une application mobile via le filtre tcp.analysis.ack_rtt. Pour trouver les requêtes HTTP lentes, utilisez la condition http.time supérieur à 1.
Pour trouver les requêtes HTTP lentes, filtrez http.time supérieur à 1 — Wireshark affichera les requêtes avec un temps de réponse supérieur à 1 seconde. Combinez avec ip.addr pour analyser un serveur spécifique. Un IO Graph avec un intervalle de 1 seconde montrera clairement les pics de charge.
Wireshark prend en charge l'export vers CSV, JSON et XML via le menu File. Pour l'analyse automatique, utilisez tshark — la version console qui fonctionne dans les pipelines CI/CD. Tshark prend en charge les mêmes filtres et formats de sortie que la version graphique.
Wireshark exige une compréhension des principes de base de la capture du trafic. L'un des scénarios fréquents consiste à rechercher la source des latences dans une application mobile via le filtre tcp.analysis.ack_rtt. Pour trouver les requêtes HTTP lentes, utilisez la condition http.time supérieur à 1.
Pour trouver les requêtes HTTP lentes, filtrez http.time supérieur à 1 — Wireshark affichera les requêtes avec un temps de réponse supérieur à 1 seconde. Combinez avec ip.addr pour analyser un serveur spécifique. Un IO Graph avec un intervalle de 1 seconde montrera clairement les pics de charge.
Wireshark prend en charge l'export vers CSV, JSON et XML via le menu File. Pour l'analyse automatique, utilisez tshark — la version console qui fonctionne dans les pipelines CI/CD. Tshark prend en charge les mêmes filtres et formats de sortie que la version graphique.
Questions fréquentes
Wireshark fournit une interface graphique avec visualisation des paquets, filtres intégrés et statistiques. tcpdump est un utilitaire console sans GUI, pratique pour la capture serveur via SSH. Wireshark sait lire les fichiers de tcpdump et inversement.
Pour le déchiffrement, un fichier de clés de session TLS (SSLKEYLOGFILE) est requis. Chrome et Firefox exportent les clés au lancement avec la variable d'environnement. Le chemin du fichier est indiqué dans les paramètres Protocols → TLS de Wireshark.
Le trafic loopback sous Windows ne passe pas par le pilote Npcap par défaut. La solution consiste à installer Npcap avec l'option Loopback Support activée ou à utiliser l'utilitaire RawCap pour capturer le trafic local.
Oui, en faisant transiter le trafic vers l'ordinateur. Android prend en charge la capture via PCAPdroid (sans root) ou tcpdump (avec root). iOS exige RVI (Remote Virtual Interface) via macOS ou jailbreak pour la capture.
Le display filter frame contains recherche une chaîne ou une séquence hexadécimale dans tout le paquet. Exemple : frame contains "password" trouvera les paquets contenant la sous-chaîne password dans n'importe quel champ. Pour une recherche précise par champ, utilisez http.request.uri contains "api".
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi