NetCat

De Justine's wiki
Aller à la navigation Aller à la recherche


https://www.thegeekstuff.com/2012/04/nc-command-examples/?utm_source=feedburner

Qu'est-ce que c'est ?

Netcat ou nc est un utilitaire servant à débuguer et investiguer le réseau. Souvent appellé "le couteau suisse du réseau", son but est de créer des connexion TCP/UDP et de les étudier. Sa principale utilité est d'être utilisé dans des scripts ayant besoin de connexions TCP/UDP.

Quelques exemple

Client-Serveur

Pour écouter un port :

nc -l 2389

En mode client, pour essayer de se connecter à un port :

nc localhost 2389

Ainsi, si je lance les deux commandes, une fois connectée je peux taper du texte pour l'envoyer directement ! On peux désactiver cette fonction avec -d.

Par défaut, netcat utilise tcp; on peut cependant faire de l'UDP avec l'argument -u.

Transfert de fichiers

Netcat peut aussi transférer des fichiers. Côté client, on veut envoyer le fichier :

cat fichiertest.txt
Salut!

Côté serveur, nous avons un fichier vide appellé "test".

On lance le serveur:

nc -l 2389 > test

Et pour le client:

cat fichiertest.txt | nc localhost 2389

Le fichier est rempli côté serveur et la connexion est coupée.

Le support des timeouts

On peut préciser un nombre de secondes après lequel la connexion passera en timeout. Pour cela, on utilise -w :

nc -w 10 localhost 1289

Attention, on ne peut utiliser -w avec -l coté serveur; -w n'est du coup pas pris en compte.

IPv4 vs IPv6

On peut forcer l'usage de l'un ou l'autre avec -4 ou -6.

Forcer le serveur à rester up

Lorsque le client se déconnecte, en temps normal le serveur s'arrête. On peut empêcher ce comportement avec -k:

nc -k -l 1289

Faire en sorte que le client reste up après la fin du fichier

Quand le client reàoit un EOF, il s'arrête. On peut empêcher cela avec -q; cet argument attend en paramètre un nombre de secondes après lequel le client s'arrêtera, après avoir reçu un EOF :

nc -q 5 localhost 1289