NetCat
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