Comment simuler un client TCP/UDP avec Netcat

Dans ce guide, nous allons vous présenter le modèle client-serveur et vous montrer comment simuler un client TCP/UDP à l'aide d'un outil pratique appelé Netcat – afin que vous puissiez établir une connexion à l'aide du terminal de votre ordinateur.

Alors, comment fonctionne le modèle client-serveur dans l'Internet des objets ? Le client est l'appareil qui initie la communication. Le serveur est Ubidots (ou toute autre connexion serveur), qui accepte les connexions et gère les transferts de données via un protocole simple comme TCP ou UDP.

Pour en savoir plus sur la gestion de vos données avec Ubidots , découvrez comment envoyer des données à Ubidots via TCP ou UDP .

Qu'est-ce que Netcat ?

Netcat est un featured permettant de lire et d'écrire des données sur des connexions réseau, via le protocole TCP/IP. Conçu comme un outil « back-end » fiable, Netcat peut être utilisé directement avec d'autres programmes et scripts pour envoyer des fichiers entre un client et un serveur. Parallèlement, c'est un outil complet de débogage et d'exploration réseau, capable de spécifier des paramètres réseau tout en établissant une connexion à un hôte distant via un tunnel.

Bien que Netcat puisse faire beaucoup de choses, son objectif principal et ses fonctions les plus utiles sont :

1. Créez un socket initial pour établir une connexion entre le serveur et le client.
2. Une fois la connexion établie, Netcat générera automatiquement un second socket pour le transfert de fichiers entre le serveur et le client. (C'est la partie la plus intéressante !)

Un schéma de l'architecture du protocole de données de Netcat est présenté ci-dessous :

Comme vous le verrez ci-dessous, cette solution simple est aussi extraordinairement puissante et flexible. Par souci de simplicité, nous utiliserons des connexions locales, mais elles peuvent bien sûr être utilisées entre différentes machines.

Syntaxe

nc [-options] nom_hôte port(s) [ports] nc -l -p port [-options] [nom_hôte] [port]

Paramètres de base

  • -l : active le mode « écoute », attend les connexions entrantes.
  • -p : port local.
  • -u : définir le mode UDP.

Testez votre compréhension de Netcat en tant que client-serveur

Ouvrez deux terminaux d'ordinateur : le premier fera office de serveur et le second de client.

Client TCP

Avec Netcat, votre PC peut être transformé en serveur. Il vous faudra commencer par le configurer comme serveur écoutant sur le port 2399 .

$ nc -l 2399

Nous pouvons également utiliser le serveur pour nous connecter au port récemment ouvert ( 2399 ) depuis le client :

$ nc localhost 2399

Comme vous pouvez le constater sur l'image ci-dessous, la connexion est établie :

La connexion étant établie, vous pouvez désormais écrire au serveur depuis le client :

$ nc localhost 2399 Bonjour Serveur

Dans le terminal où le serveur est exécuté, vos fichiers texte s'afficheront sans problème.

$ nc -l 2399 Bonjour Serveur

Client UDP

Par défaut, Netcat utilise le TCP pour communiquer, mais il peut également utiliser UDP avec l' -u .

Comme indiqué précédemment, Netcat vous permet de transformer votre PC en serveur. Nous allons ici établir la connexion entre le serveur et le client via le protocole UDP.

Côté serveur , exécutez la commande ci-dessous. Comme vous pouvez le constater, il suffit d'ajouter -u à ​​la commande pour établir la UDP :

$ nc -u -l 2399

Une fois le serveur démarré, établissez la connexion avec le client :

$ nc -u localhost 2399

Le client et le serveur communiquent désormais via UDP. Vous pouvez vérifier la communication à l'aide de la commande netstat dans un nouveau terminal (troisième ordinateur).

$ netstat | grep 2399 udp 0 0 localhost:2399 localhost:57508 ÉTABLI

Comme vous pouvez le constater ci-dessous, le message est reçu par le serveur et la transmission est vérifiée par la connexion :

Grâce à cette introduction à Netcat, vous comprenez désormais mieux comment utiliser cet outil avancé pour envoyer des données rapidement et efficacement entre un client et un serveur. Consultez la page d'accueil du projet Netcat pour plus d'informations.

Bon piratage ! 🙂