Netcat reste, trente ans après sa création, l’un des outils que j’ai le plus utilisés durant ma carrière d’ingénieur systèmes. Surnommé le « couteau suisse du réseau », il tient dans une poignée de kilo-octets et rend des services qu’aucune interface graphique moderne ne remplace vraiment. Voici comment je l’utilise encore aujourd’hui.
Qu’est-ce que Netcat
Netcat (souvent abrégé nc) est un utilitaire en ligne de commande qui lit et écrit des données sur des connexions réseau, en TCP comme en UDP. Créé en 1995, disponible nativement sur la plupart des distributions Linux et installable facilement sur macOS et Windows, il sert autant au diagnostic réseau qu’au transfert de fichiers ou aux tests de sécurité basiques.
Tester la connectivité d’un port
La commande la plus fréquente que j’utilise reste le test de port simple :
nc -zv exemple.fr 443
Cette commande vérifie en une seconde si le port 443 (HTTPS) répond sur le serveur exemple.fr, sans passer par un navigateur ni un outil de monitoring complexe. Sur un serveur que je viens de configurer, c’est le premier réflexe avant même de tester dans un navigateur.
Transférer un fichier sans FTP ni SCP
Netcat permet un transfert de fichier direct entre deux machines sur le même réseau, utile quand aucun serveur FTP n’est disponible et que SSH n’est pas configuré :
Sur la machine réceptrice : nc -l -p 1234 > fichier.zip Sur la machine émettrice : nc destination.local 1234 < fichier.zip
Ce n’est pas chiffré, donc jamais à utiliser sur un réseau public non maîtrisé, mais en environnement de test local ou sur un réseau d’entreprise isolé, c’est redoutablement pratique et rapide à mettre en place.
Diagnostiquer un service réseau
Netcat sert aussi à dialoguer manuellement avec un service réseau pour vérifier sa réponse brute, sans passer par un client dédié :
nc smtp.exemple.fr 25
Cette commande ouvre une connexion directe au serveur mail, permettant de taper les commandes SMTP à la main et d’observer les réponses du serveur. J’ai diagnostiqué des dizaines de problèmes d’envoi d’email de cette façon, quand les logs seuls ne suffisaient pas à comprendre le blocage.
Netcat et sécurité : un outil à double tranchant
La même simplicité qui rend Netcat utile en fait aussi un outil apprécié pour créer des reverse shells lors de tests d’intrusion. Cette réalité explique pourquoi certains antivirus le signalent comme suspect par défaut. Sur un poste d’entreprise, son usage devrait rester réservé aux équipes techniques formées, avec une politique claire sur son installation.
Les alternatives modernes
- Ncat, la version réécrite du projet Nmap, avec support SSL natif
- Socat, plus puissant mais nettement plus complexe à apprendre
- Curl, pour les tests HTTP spécifiquement, plus adapté au diagnostic web quotidien
Netcat n’a pas pris une ride depuis les années 1990, et c’est justement sa simplicité brute qui explique sa longévité. Aucun outil graphique moderne ne va aussi vite pour un diagnostic réseau ponctuel.
Netcat en mode écoute pour tester un service local
Avant de déployer une application qui doit écouter sur un port réseau précis, je vérifie systématiquement que ce port n’est pas déjà occupé par un autre processus, avec une commande simple :
nc -l 8080
Si la commande échoue immédiatement avec une erreur « Address already in use », un autre service occupe déjà ce port, une information précieuse avant même de lancer l’application concernée. Ce test préalable, qui prend cinq secondes, évite des heures de diagnostic confus sur un déploiement qui ne démarre pas.
Un exemple de diagnostic réel
Un client m’a contacté récemment parce qu’un serveur web nouvellement déployé restait inaccessible depuis internet. Le test Netcat depuis un poste externe a immédiatement révélé un timeout, signe d’un blocage firewall plutôt que d’un problème applicatif. La commande a permis d’isoler le problème en moins de deux minutes, contre une heure de vérifications applicatives inutiles si nous avions commencé par le mauvais bout du diagnostic.
Netcat sous Windows : PowerShell comme alternative native
Netcat n’est pas installé nativement sous Windows, mais PowerShell propose une commande équivalente pour le test de port simple, sans installation supplémentaire :
Test-NetConnection -ComputerName exemple.fr -Port 443
Pour un technicien travaillant exclusivement sous Windows sans vouloir installer d’outil tiers, cette commande couvre l’essentiel des besoins de diagnostic de connectivité réseau au quotidien.
Automatiser un scan de plusieurs ports
Au-delà d’un test unitaire, Netcat permet de scanner une plage de ports en une seule commande, utile pour vérifier rapidement quels services répondent sur une machine :
nc -zv exemple.fr 20-100
Cette approche reste plus légère qu’un outil dédié comme Nmap pour un contrôle ponctuel, même si Nmap demeure préférable pour un audit de sécurité complet et documenté.
Un dernier conseil issu de l’expérience : toujours documenter la commande exacte utilisée lors d’un diagnostic, dans un journal d’intervention. Ce réflexe simple fait gagner un temps considérable la prochaine fois qu’un problème similaire se présente sur la même infrastructure.
Ce point recoupe le mirroring réseau professionnel, et dans une logique voisine, la gestion des appels entrants en entreprise.