Aperçu
nc est un outil puissant utilisé pour envoyer et recevoir des données sur le réseau. Il est utilisé pour établir une communication bidirectionnelle dans un modèle client-serveur, vérifier si un port spécifique est ouvert, et pour divers diagnostics et tests réseau.
Principaux domaines d'application
- Scan de ports et vérification de leur ouverture
- Création de serveurs et clients TCP/UDP simples
- Transfert de fichiers (via le réseau)
- Débogage et test de services réseau
- Connexions de chat ou de shell simples
Options principales
La commande nc offre diverses options pour effectuer des opérations réseau flexibles.
Connexion et écoute
Contrôle du comportement
Commande générée :
Essayez de combiner les commandes.
Description:
`nc` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Divers exemples d'utilisation de la commande nc.
Vérifier si un port spécifique est ouvert (TCP)
nc -zv google.com 80
Vérifie si le port 80 de google.com est ouvert. -z tente la connexion sans transfert de données, et -v fournit une sortie détaillée.
Serveur TCP simple (écoute)
nc -lvp 1234
Attend les connexions entrantes sur le port local 1234. Une fois connecté, le client peut envoyer et recevoir du texte.
Client TCP simple (connexion au serveur)
nc localhost 1234
Se connecte au serveur en cours d'exécution (localhost:1234). Après la connexion, vous pouvez entrer du texte pour communiquer avec le serveur.
Transfert de fichier (côté serveur)
nc -lvp 1234 < file_to_send.txt
Le serveur écoute sur le port 1234 pour transférer le fichier 'file_to_send.txt' vers le client.
Transfert de fichier (côté client)
nc localhost 1234 > received_file.txt
Le client se connecte au serveur (localhost:1234) et enregistre le fichier transféré sous le nom 'received_file.txt'.
Envoyer une requête HTTP GET
printf "GET / HTTP/1.0\r\n\r\n" | nc example.com 80
Utilise nc pour envoyer directement une requête HTTP GET à un serveur web et vérifier la réponse.
Installation
nc (netcat) est généralement préinstallé sur la plupart des distributions Linux, ou peut être facilement installé via le gestionnaire de paquets de la distribution. Selon la distribution, il peut être fourni sous le nom 'netcat-traditional' ou 'ncat' (une version améliorée du projet Nmap).
Debian/Ubuntu
sudo apt update
sudo apt install netcat-traditional
Installation à l'aide du gestionnaire de paquets apt.
CentOS/RHEL/Fedora
sudo yum install nc
# Ou
sudo dnf install nmap-ncat
Installation à l'aide des gestionnaires de paquets yum ou dnf.
Conseils et précautions
nc est un outil très puissant, mais son utilisation abusive peut entraîner des problèmes de sécurité, il faut donc l'utiliser avec prudence.
Considérations de sécurité
nc peut être utilisé à des fins malveillantes telles que des portes dérobées ou des connexions shell. Il est donc conseillé de ne pas l'utiliser sans une compréhension de la sécurité du système. Soyez particulièrement prudent lorsque vous contournez les règles du pare-feu ou transférez des données sensibles.
- Ne pas ouvrir de ports inutiles
- Éviter les connexions avec des sources non fiables
- Vérifier et configurer les règles du pare-feu
Différence entre nc et ncat
Sur certains systèmes, 'nc' fait référence à 'netcat-traditional', tandis que sur d'autres, il peut faire référence à 'ncat' (qui fait partie du projet Nmap). ncat offre plus de fonctionnalités telles que la prise en charge d'IPv6, SSL et proxy. Par conséquent, si vous avez besoin de fonctionnalités spécifiques, vous pouvez envisager d'installer et d'utiliser explicitement 'ncat'.
Utilisation dans les scripts
nc est très utile pour automatiser des tâches réseau complexes en le combinant avec d'autres commandes via des scripts shell et des pipes (|). Par exemple, vous pouvez surveiller la réponse d'un service spécifique ou créer des prototypes de services réseau simples.