Linux mascot using a laptop with some multiplexer terminals around it.
Agence web » Actualités du digital » 6 utilisations de réseautage pour la commande Linux NC

6 utilisations de réseautage pour la commande Linux NC

L'outil NetCAT est très populaire parmi les administrateurs de réseau. Cependant, il peut également vous servir différents objectifs en tant qu'utilisateur de Linux décontracté dans votre vie quotidienne. En faisant des recherches, j'ai trouvé de grands cas d'utilisation pour jouer avec la commande NC.

6

Établir des connexions réseau

Je vais commencer par la chose la plus simple et la plus fondamentale que NC peut faire. C'est-à-dire créer une connexion TCP ou UDP directe entre deux machines. Il s'agit du bloc de construction de nombreuses utilisations les plus avancées.

Supposons que vous ayez deux systèmes Linux. Pour la démonstration, j'utilise une machine Ubuntu et une machine à menthe Linux. Ubuntu servira de serveur ou d'écouteur tandis que Linux Mint agira en tant que client ou connecteur.

Tout d'abord, commencez l'auditeur.

nc -l -p 12345

L'indicateur -L est pour le mode écouteur. L'indicateur -p est pour définir le port. Ici, nous utilisons le port 12345, mais vous pouvez utiliser tout autre que vous souhaitez, sauf si il est déjà utilisé. Après avoir exécuté cette commande, votre terminal sera juste assis là, en attendant une connexion.

Maintenant, à partir de la machine du connecteur, exécutez:

nc ip_address port_number

Remplacez IP_ADdress par l'adresse IP de votre serveur. Le numéro de port sera celui que vous avez utilisé dans votre auditeur. Donc, dans mon cas:

nc 192.168.100.4 12345

Cela établit une connexion TCP entre les deux machines. De plus, ce n'est pas une communication unidirectionnelle où seul le serveur peut envoyer. Au contraire, les deux parties peuvent envoyer et recevoir.

Si vous souhaitez établir une connexion UDP à la place, vous pouvez le faire en utilisant le drapeau -u. Sur la machine de l'auditeur, exécutez:

nc -u -l -p 12345

Sur la machine client, exécutez:

nc -u 192.168.100.4 12345

Les connexions UDP sont moins fiables que TCP. Cependant, ils sont préférables lorsque la vitesse est critique et qu'un peu de perte de données est acceptable.

5

Balayage de port

En plus de se connecter à un seul port, NC peut vérifier toute une gamme de ports pour voir lesquels sont ouverts. Cela peut aider à dépanner ou à énumérer les services. C'est aussi pourquoi NC est parfois appelé le «couteau suisse de l'armée» du réseautage.

Disons que vous souhaitez trouver les ports TCP ouverts sur votre machine serveur à partir de votre machine client. Vous créez un écouteur sur le serveur comme avant.

nc -l -p 12345

Ensuite, du client, exécutez:

nc -z -v 192.168.100.4 20-130

L'indicateur -Z indique NetCAT d'utiliser le mode zéro-i / o. Cela signifie que NetCAT devrait simplement rechercher des démons à écouter au lieu d'envoyer des données. L'indicateur -v permet le mode verbeux, qui affiche simplement les résultats d'une meilleure façon. Nous définissons également la gamme de ports de 20 à 130 qui nous intéressent.

Seuls les systèmes de numérisation que vous possédez ou avez une autorisation explicite pour scanner. La numérisation non autorisée peut être illégale ou considérée comme hostile.

Dans la démonstration, presque tous les ports ont refusé la connexion car ils étaient fermés, à l'exception du port 80. De la même manière, vous pouvez également scanner les ports UDP.

4

Transfert de fichiers

NetCAT peut envoyer des fichiers directement sur TCP ou UDP sans avoir besoin de dossiers FTP, SCP ou partagés. Cela le rend idéal pour les transferts rapides, en particulier lorsque d'autres méthodes ne sont pas disponibles. Envoyons un fichier de ma menthe Linux à ma machine Ubuntu.

J'ai déjà un fichier nommé Test.txt, qui lit « Fichier pour tester le transfert de fichiers NC ». Tout d'abord, créez un écouteur sur la machine où vous souhaitez transférer le fichier. Ce faisant, redirigez la sortie de la connexion vers un fichier, comme celui-ci.

nc -l -p 12345 > received.txt

Ensuite, sur la machine de l'expéditeur, redirigez le contenu du fichier vers votre connexion NC comme celle-ci.

nc 192.168.100.4 12345 

Pour vérifier si le transfert a réussi, utilisez la commande LS pour voir si le fichier est là, puis la commande CAT pour lire son contenu. Vous pouvez également faire l'inverse et envoyer des fichiers dans le but. Tout ce que vous avez à faire est d'inverser les rôles en utilisant les commandes que j'ai montrées ci-dessus.

3

Créer un serveur Web

NetCAT peut agir comme un serveur HTTP simple en écoutant sur un port et en envoyant du HTML brut à toute personne qui se connecte. Cela ne remplacera pas Apache ou Nginx, bien sûr. Cependant, pour les démos rapides, le débogage ou l'apprentissage des demandes HTTP, c'est parfait.

Tout d'abord, créez un fichier HTML statique (je l'appelle page.html) sur votre machine de serveur. Pour moi, c'est Ubuntu.

echo -e "HTTP/1.1 200 OKrnContent-Type: text/htmlrnrn" > page.html

Dans ce fichier, j'ai inclus une ligne d'état HTTP, un en-tête de type de contenu et un corps HTML simple. Le rn Les séquences sont essentielles en HTTP pour séparer les en-têtes du corps.

Maintenant, démarrez un serveur Web NetCAT sur la même machine:

while true; do nc -l -p 8080 

Nous utilisons une boucle de temps ici afin que même après chaque demande, le serveur reste debout. Nous écoutons sur le port 8080 et envoyons le fichier HTML en réponse. Maintenant, ouvrez un navigateur Web à partir de la machine client (Linux Mint dans mon cas) et visitez la page HTML statique en spécifiant l'IP et le port.

http://192.168.100.4:8080

Vous pouvez également utiliser la commande curl pour récupérer la page HTML.

curl http://192.168.100.4:8080

2

Créer une application de chat simple

NetCAT peut connecter deux terminaux, donc tout ce que vous tapez sur l'un apparaît instantanément sur l'autre. Avec une petite supercherie de coquille, vous pouvez en faire un outil de chat en temps réel. Pas besoin d'applications de chat tierces.

Pour ce faire, vous devez créer une connexion réseau comme indiqué dans la première section. Créez un auditeur sur une seule machine:

nc -l -p 12345

Connectez-vous ensuite à partir d'une autre machine.

nc 192.168.100.4 12345

Une fois que vous avez établi la connexion, vous pouvez taper n'importe quoi sur un terminal. Il apparaîtra sur l'autre terminal. Ensuite, vous pouvez taper n'importe quoi sur le deuxième terminal, et il apparaîtra dans le premier.

Vous pouvez maintenant taper d'avant en arrière dans le terminal pour envoyer des messages d'un ordinateur à un autre. J'ai essayé de devenir un peu créatif et de voir si je pouvais également ajouter les noms de l'expéditeur avec les messages correspondants. De cette façon, il est plus facile de suivre qui a envoyé quel message.

Vous pouvez le faire en ajoutant le nom de l'expéditeur en utilisant Echo et une boucle de temps. Voici la configuration. Exécutez ceci sur la machine du serveur:

while read msg; do echo "Ubuntu: $msg"; done | nc -l -p 12345

Et ceci sur la machine du connecteur:

while read msg; do echo "LM: $msg"; done | nc 192.168.100.4 12345

La commande ci-dessus attend la saisie, la préfixe et l'envoie. À la réception, le préfixe apparaît exactement comme envoyé. Même s'il y a plus de deux utilisateurs, vous pourrez suivre les messages de cette façon.

1

Dépannage du réseau

Enfin, vous pouvez utiliser la commande NC pour résoudre certains problèmes de réseautage communs. Lorsque quelque chose ne va pas sur un réseau, il peut aider à confirmer s'il s'agit d'un problème de connectivité, d'un problème de service ou d'un problème de pare-feu. Il peut tester les ports, simuler des services et vérifier les réponses brutes.

Supposons qu'une demande ne réponde pas. Vous pouvez utiliser NC pour voir si vous pouvez même vous connecter à son port.

nc -zv 192.168.100.4 22

S'il est accroché ou dit « la connexion refusée », le port est fermé ou filtré.

Vous pouvez parler manuellement à un service pour voir s'il répond comme prévu. Par exemple, vérifier si un service HTTP local répond.

nc 192.168.100.4 8080

Si le service fonctionne, il renverra un en-tête de réponse HTTP et peut-être un HTML. C'est idéal pour déboguer les applications Web mal conformes sans navigateur.

Si vous pensez qu'une application peut se connecter à un port mais n'envoie pas les bonnes données, vous pouvez faire semblant d'être le service et de capturer ce que l'application envoie. Ceci est utile pour déboguer les protocoles client / serveur personnalisés. Avec NetCAT, vous pouvez rapidement effectuer ces petits tests et savoir où votre réseau échoue et comment le réparer.


Vous pouvez faire beaucoup plus avec Netcat. Si vous êtes intéressé, vous pouvez consulter la page manuelle officielle de NC. Il y a beaucoup plus de commandes de réseautage Linux que vous devez explorer.

★★★★★