GNU/Linux >> Tutoriels Linux >  >> Linux

8 exemples pratiques de commandes Linux Netcat NC

Netcat ou nc est un utilitaire de mise en réseau pour le débogage et l'investigation du réseau.

Cet utilitaire peut être utilisé pour créer des connexions TCP/UDP et les étudier. La plus grande utilisation de cet utilitaire est dans les scripts où nous devons gérer les sockets TCP/UDP.

Dans cet article, nous allons découvrir la commande netcat par quelques exemples pratiques.

1. Netcat dans une architecture serveur-client

L'utilitaire netcat peut être exécuté en mode serveur sur un port spécifié écoutant les connexions entrantes.

$ nc -l 2389

En outre, il peut être utilisé en mode client en essayant de se connecter sur le port (2389) qui vient d'être ouvert

$ nc localhost 2389

Maintenant, si nous écrivons du texte côté client, il atteint le côté serveur. Voici la preuve :

$ nc localhost 2389
HI, server

Sur le terminal où tourne le serveur :

$ nc -l 2389
HI, server

Nous voyons donc que l'utilitaire netcat peut être utilisé dans la communication du socket client-serveur.

2. Utiliser Netcat pour transférer des fichiers

L'utilitaire netcat peut également être utilisé pour transférer des fichiers. Côté client, supposons que nous ayons un fichier nommé ‘testfile’ contenant :

$ cat testfile
hello test

et côté serveur nous avons un fichier ‘test’ vide

Maintenant, nous exécutons le serveur en tant que :

$ nc -l 2389 > test

et lancez le client en tant que :

cat testfile | nc localhost 2389

Maintenant, quand on voit le fichier 'test' côté serveur, on voit :

$ cat test
hello test

Nous voyons donc que les données du fichier ont été transférées du client au serveur.

3. Netcat prend en charge les délais d'attente

Il y a des cas où nous ne voulons pas qu'une connexion reste ouverte pour toujours. Dans ce cas, grâce au commutateur '-w', nous pouvons spécifier le délai d'attente dans une connexion. Ainsi, après les secondes spécifiées avec l'indicateur -w, la connexion entre le client et le serveur est terminée.

Serveur :

nc -l 2389

Client :

$ nc -w 10 localhost 2389

La connexion ci-dessus serait interrompue après 10 secondes.

REMARQUE :N'utilisez pas l'indicateur -w avec l'indicateur -l côté serveur, car dans ce cas, l'indicateur -w n'a aucun effet et la connexion reste donc ouverte pour toujours.

4. Netcat prend en charge la connectivité IPV6

Le drapeau -4 ou -6 spécifie que l'utilitaire netcat doit utiliser quel type d'adresses. -4 force nc à utiliser l'adresse IPV4 tandis que -6 force nc à utiliser l'adresse IPV6.

Serveur :

$ nc -4 -l 2389

Client :

$ nc -4 localhost 2389

Maintenant, si nous lançons la commande netstat, nous voyons :

$ netstat | grep 2389
tcp        0      0 localhost:2389          localhost:50851         ESTABLISHED
tcp        0      0 localhost:50851         localhost:2389          ESTABLISHED

Le premier champ de la sortie ci-dessus contiendrait un suffixe "6" au cas où les adresses IPV6 seraient utilisées. Puisque dans ce cas ce n'est pas le cas, une connexion entre le serveur et le client est établie à l'aide d'adresses IPV4.

Maintenant, si nous forçons nc à utiliser des adresses IPV6

Serveur :

$ nc -6 -l 2389

Client :

$ nc -6 localhost 2389

Maintenant, si nous lançons la commande netstat, nous voyons :

$ netstat | grep 2389
tcp6       0      0 localhost:2389          localhost:33234         ESTABLISHED
tcp6       0      0 localhost:33234         localhost:2389          ESTABLISHED

Alors maintenant, un suffixe '6' avec 'tcp' montre que nc utilise maintenant des adresses IPV6.

5. Désactiver la lecture depuis STDIN dans Netcat

Cette fonctionnalité peut être obtenue en utilisant le drapeau -d. Dans l'exemple suivant, nous avons utilisé cet indicateur côté client.

Serveur :

$ nc -l 2389

Client :

$ nc -d localhost 2389
Hi

Le texte "Salut" ne sera pas envoyé au serveur, car en utilisant l'option -d, la lecture depuis stdin a été désactivée.

6. Forcer le serveur Netcat à rester actif

Si le client netcat est connecté au serveur et qu'après un certain temps, le client est déconnecté, le serveur netcat se termine normalement également.

Serveur :

$ nc -l 2389

Client :

$ nc localhost 2389
^C

Serveur :

$ nc -l 2389
$

Ainsi, dans l'exemple ci-dessus, nous voyons que dès que le client a été déconnecté, le serveur a également été arrêté.

Ce comportement peut être contrôlé en utilisant l'indicateur -k côté serveur pour forcer le serveur à rester actif même après la déconnexion du client.

Serveur :

$ nc -k -l 2389

Client :

$ nc localhost 2389
^C

Serveur :

$ nc -k -l 2389

Nous voyons donc qu'en utilisant l'option -k, le serveur reste actif même si le client est déconnecté.

7. Configurer le client Netcat pour rester actif après EOF

Le client Netcat peut être configuré pour rester actif après la réception d'EOF. Dans un scénario normal, si le client nc reçoit un caractère EOF, il se termine immédiatement, mais ce comportement peut également être contrôlé si l'indicateur -q est utilisé. Cet indicateur attend un nombre qui représente le nombre de secondes à attendre avant que le client ne se termine (après avoir reçu EOF)

Le client doit être démarré comme :

nc  -q 5  localhost 2389

Désormais, si le client reçoit un EOF, il attendra 5 secondes avant de se terminer.

8. Utiliser Netcat avec le protocole UDP

Par défaut, tous les sockets créés par l'utilitaire nc sont des protocoles TCP, mais cet utilitaire fonctionne également avec le protocole UDP. Pour activer le protocole UDP, l'indicateur -u est utilisé.

Serveur :

$ nc -4 -u -l 2389

Client :

$ nc -4 -u localhost 2389

Maintenant, le serveur et le client sont configurés pour utiliser le protocole UDP. Cela peut être confirmé par la commande netstat suivante. Nous voyons donc que cette connexion utilise maintenant le protocole UDP.

$ netstat | grep 2389
udp        0      0 localhost:42634         localhost:2389          ESTABLISHED

Linux
  1. 7 exemples pratiques de la commande cd sous Linux

  2. Exemples pratiques de la commande rsync sous Linux

  3. 5 exemples pratiques de Head Command sous Linux

  4. 5 exemples pratiques de la commande dd sous Linux

  5. 10 exemples pratiques de commandes Linux nm

12 exemples pratiques d'In Command sous Linux

Les 50 exemples pratiques de la commande SED sous Linux

15 exemples pratiques de commande Rsync sous Linux

5 exemples pratiques de la commande Tail sous Linux

commande echo sous Linux :7 exemples pratiques

Commande Ping pratique dans des exemples Linux