Six utilisations essentielles de la commande nc sous Linux pour les administrateurs réseau et les utilisateurs occasionnels
Guide Complet : 6 Utilisations Essentielles de la Commande nc sous Linux
La commande netcat (nc) est souvent considérée comme le “couteau suisse” du réseau sous Linux. Cet outil polyvalent offre des fonctionnalités remarquables qui vont bien au-delà de sa simplicité apparente. Que vous soyez administrateur réseau chevronné ou utilisateur Linux occasionnel, maîtriser nc peut considérablement améliorer votre efficacité dans la gestion des tâches réseau quotidiennes.
Dans ce guide détaillé, nous explorerons six utilisations pratiques de la commande nc qui vous permettront d’établir des connexions réseau, de transférer des fichiers, de diagnostiquer des problèmes, et même de créer des applications simples. Chaque section comprend des exemples concrets et des explications techniques accessibles.
Matériel Nécessaire
Avant de commencer, assurez-vous de disposer des éléments suivants :
- Au moins deux machines Linux (Ubuntu, Debian, CentOS, ou toute autre distribution)
- La commande nc installée (généralement incluse par défaut)
- Accès administrateur pour certaines opérations
- Connexion réseau fonctionnelle entre les machines
- Connaissance des adresses IP de vos machines
1. Établir des Connexions Réseau Directes
La fonction la plus fondamentale de nc consiste à créer des connexions TCP ou UDP directes entre deux machines. Cette capacité constitue la base de toutes les utilisations avancées que nous verrons par la suite.
Configuration d’une Connexion TCP
Étape 1 : Sur la machine serveur (celle qui va écouter), exécutez la commande suivante :
nc -l -p 12345
Le paramètre -l
active le mode écoute (listener), tandis que -p
définit le port d’écoute. Ici, nous utilisons le port 12345, mais vous pouvez choisir n’importe quel port libre entre 1024 et 65535.
Étape 2 : Sur la machine cliente, établissez la connexion avec :
nc [adresse_ip_serveur] 12345
Remplacez [adresse_ip_serveur] par l’adresse IP réelle de votre serveur. Par exemple :
nc 192.168.1.100 12345
Une fois la connexion établie, vous pouvez taper du texte dans n’importe quel terminal et il apparaîtra instantanément sur l’autre machine.
Configuration d’une Connexion UDP
Pour les applications nécessitant des communications rapides où une perte occasionnelle de données est acceptable, utilisez UDP :
Sur le serveur :
nc -u -l -p 12345
Sur le client :
nc -u 192.168.1.100 12345
Le paramètre -u
force l’utilisation du protocole UDP au lieu de TCP.
2. Scanner les Ports Réseau
L’analyse de ports est cruciale pour la sécurité réseau et le dépannage. La commande nc excelle dans cette tâche grâce à sa simplicité et sa rapidité.
Scanner une Plage de Ports
Étape 1 : Pour scanner les ports TCP d’une machine distante, utilisez :
nc -z -v [adresse_ip] [plage_ports]
Exemple pratique :
nc -z -v 192.168.1.100 20-130
Le paramètre -z
active le mode “Zero-I/O”, qui effectue uniquement la vérification de connectivité sans envoyer de données. Le paramètre -v
active le mode verbeux pour un affichage détaillé des résultats.
Étape 2 : Pour scanner des ports UDP spécifiques :
nc -u -z -v 192.168.1.100 53,123,161
Attention : N’analysez que les systèmes dont vous êtes propriétaire ou pour lesquels vous avez une autorisation explicite. L’analyse non autorisée peut être illégale dans certaines juridictions.
Vérification de Ports Spécifiques
Pour tester rapidement si un service spécifique est accessible :
nc -zv google.com 80
Cette commande vérifie si le port HTTP (80) de Google est ouvert et accessible.
3. Transférer des Fichiers Rapidement
Le transfert de fichiers avec nc est particulièrement utile lorsque les méthodes traditionnelles (FTP, SCP, rsync) ne sont pas disponibles ou trop complexes à configurer.
Transfert de Fichier Simple
Étape 1 : Sur la machine réceptrice, configurez l’écoute et la redirection :
nc -l -p 12345 > fichier_recu.txt
Cette commande redirige tout ce qui arrive sur le port 12345 vers le fichier “fichier_recu.txt”.
Étape 2 : Sur la machine émettrice, envoyez le fichier :
nc 192.168.1.100 12345 < fichier_a_envoyer.txt
Le symbole <
redirige le contenu du fichier vers la connexion nc.
Étape 3 : Vérifiez la réception avec :
ls -la fichier_recu.txt
cat fichier_recu.txt
Transfert de Répertoires Complets
Pour transférer un répertoire entier, combinez nc avec tar :
Sur le récepteur :
nc -l -p 12345 | tar -xzf -
Sur l’émetteur :
tar -czf - /chemin/vers/repertoire | nc 192.168.1.100 12345
Cette méthode compresse le répertoire avec gzip (-z) avant le transfert, optimisant ainsi la bande passante.
4. Créer un Serveur Web Basique
Bien que nc ne remplace pas Apache ou Nginx, il peut servir de serveur HTTP minimal pour des tests rapides ou des démonstrations.
Création d’une Page HTML Statique
Étape 1 : Créez un fichier HTML avec les en-têtes HTTP appropriés :
echo -e "HTTP/1.1 200 OKrnContent-Type: text/htmlrnrn
Serveur Netcat
Page servie par nc
" > page.html
Les séquences rn
sont essentielles pour respecter le protocole HTTP et séparer les en-têtes du corps de la réponse.
Étape 2 : Lancez le serveur web avec une boucle pour maintenir le service :
while true; do nc -l -p 8080 < page.html; done
Étape 3 : Testez depuis un navigateur ou avec curl :
curl http://192.168.1.100:8080
Serveur avec Gestion des Requêtes
Pour un serveur plus sophistiqué qui affiche les requêtes reçues :
while true; do echo -e "HTTP/1.1 200 OKrnrnRequête reçue à $(date)" | nc -l -p 8080; done
Cette version affiche l’heure de chaque requête, utile pour le débogage.
5. Développer une Application de Chat Simple
La capacité de nc à établir des connexions bidirectionnelles en fait un excellent outil pour créer des systèmes de communication basiques.
Chat Basique
Étape 1 : Établissez une connexion comme décrit dans la section 1.
Étape 2 : Une fois connecté, tapez vos messages dans n’importe quel terminal. Ils apparaîtront instantanément sur l’autre machine.
Chat avec Identification des Utilisateurs
Pour améliorer l’expérience utilisateur en identifiant l’expéditeur de chaque message :
Sur la machine serveur :
while read message; do echo "Serveur: $message"; done | nc -l -p 12345
Sur la machine cliente :
while read message; do echo "Client: $message"; done | nc 192.168.1.100 12345
Cette configuration préfixe automatiquement chaque message avec l’identité de l’expéditeur.
Chat Multiutilisateur
Pour supporter plusieurs utilisateurs simultanément, utilisez des tubes nommés (named pipes) :
mkfifo chat_pipe
nc -l -p 12345 < chat_pipe | tee chat_pipe &
Cette configuration avancée permet à plusieurs clients de se connecter et de communiquer via le même canal.
6. Diagnostiquer les Problèmes Réseau
Le dépannage réseau est l’une des applications les plus précieuses de nc pour les administrateurs système.
Test de Connectivité de Base
Étape 1 : Vérifiez si un port spécifique est accessible :
nc -zv 192.168.1.100 22
Si la commande se bloque ou retourne “Connection refused”, le port est fermé ou filtré par un pare-feu.
Étape 2 : Testez la connectivité avec timeout :
timeout 5 nc -zv 192.168.1.100 80
Cette commande abandonne la tentative après 5 secondes, évitant les blocages prolongés.
Simulation de Services
Pour tester le comportement d’applications clientes, simulez un service :
nc -l -p 8080
Connectez votre application cliente à ce port factice pour observer les données qu’elle envoie.
Test de Performance Réseau
Mesurez la bande passante entre deux machines :
Sur le récepteur :
nc -l -p 12345 > /dev/null
Sur l’émetteur :
dd if=/dev/zero bs=1M count=100 | nc 192.168.1.100 12345
Cette méthode transfère 100 MB de données nulles pour tester la vitesse de transfert pure.
Analyse du Trafic HTTP
Pour déboguer des applications web, interceptez et analysez les requêtes HTTP :
nc -l -p 8080
Configurez votre application pour se connecter à ce port et observez les en-têtes HTTP bruts qu’elle envoie.
Conclusion
La commande nc s’avère être un outil indispensable dans l’arsenal de tout utilisateur Linux, qu’il soit novice ou expert. Sa simplicité d’utilisation cache une puissance remarquable qui permet de résoudre une multitude de problèmes réseau quotidiens.
Les six utilisations présentées dans ce guide ne représentent qu’un aperçu des possibilités offertes par netcat. De l’établissement de connexions basiques au dépannage réseau avancé, en passant par le transfert de fichiers et la création d’applications simples, nc démontre sa polyvalence exceptionnelle.
Pour approfondir vos connaissances, consultez la page de manuel officielle avec man nc
et explorez les nombreuses options avancées disponibles. N’hésitez pas à expérimenter avec différents paramètres et à adapter ces exemples à vos besoins spécifiques.
Rappel important : Utilisez toujours nc de manière responsable et éthique. Assurez-vous d’avoir les autorisations nécessaires avant d’analyser ou de tester des systèmes qui ne vous appartiennent pas.

Rédactrice spécialisée en édition de site. Formation de journaliste et passionnée par les nouvelles technologies, l’intelligence artificielle et la rédaction web.
Laisser un commentaire