Envoyer des données sur les ordinateurs en réseau avec Netcat à l'aide de la ligne de commande

Netcat est un outil de ligne de commande puissant qui peut lire et écrire des données sur une connexion réseau en utilisant TCP / IP, il est couramment utilisé pour les relais, le transfert de fichiers, l'analyse de ports, entre autres choses. Bien que les origines netcat proviennent des mondes unix et linux, netcat est également intégré à Mac OS X, et nous allons utiliser l'utilitaire nc pour envoyer facilement des données et d'autres textes sur deux ordinateurs en réseau.

En utilisant netcat pour envoyer des données avec une relation client et serveur assez simple, il offre une alternative potentiellement plus rapide au partage de fichiers traditionnel lorsque les utilisateurs préfèrent rester dans la ligne de commande lors de l'envoi et de la réception de données. t pratique.

Notez que netcat ne nécessite aucune connexion ou authentification, la seule exigence est que le client connaisse l'adresse IP du serveur et le numéro de port d'écoute. Cela soulève évidemment un potentiel d'utilisation abusive de la sécurité, donc l'utilisation de netcat pour envoyer des données et du texte est généralement mieux réservée aux utilisateurs avancés, ou pour une utilisation exclusivement derrière un réseau local protégé où il y a peu de risque. Les situations où la sécurité est importante à souligner serait mieux d'utiliser SSH.

Pour plus de facilité, nous ferons référence à l'ordinateur 1 qui écoute avec netcat en tant que "Serveur", et nous ferons référence à l'ordinateur 2 envoyant les données à l'ordinateur 1 en tant que "client".

Définir Netcat pour écouter sur le serveur (ordinateur 1) et le port

Nous allons lancer netcat et l'écouter sur le port 2999, puis rediriger les données reçues vers un fichier nommé "received.txt" avec la chaîne de commande suivante:

nc -l 2999 > received.txt

Avant d'appeler le client, vous devez avoir l'adresse IP du Mac sur le réseau local. Vous pouvez l'obtenir à partir du panneau de configuration Réseau ou, puisque vous êtes déjà sur le Terminal, via la ligne de commande avec la syntaxe suivante:

ipconfig getifaddr en0

Les Mac modernes avec Wi-Fi seulement utiliseront en0, les Mac avec ethernet et wifi peuvent utiliser en1. Si vous ne trouvez rien, essayez l'autre interface pour obtenir l'IP LAN. Supposons que cette adresse IP de Mac est signalée comme "192.168.1.101", bien sûr, la vôtre est susceptible de varier. Vous en aurez besoin sur l'ordinateur client pour envoyer des données, que nous couvrirons ensuite.

Tuyau Données du client (ordinateur 2) vers le serveur d'écoute

Maintenant, sur le client où vous souhaitez envoyer des données, vous pouvez utiliser une commande comme celle-ci. Nous allons utiliser cat pour transférer un fichier texte sur le réseau vers le serveur netcat à l'écoute, mais vous pouvez rediriger à peu près tout ce que vous voulez:

cat sendthisdataover.txt | nc 192.168.1.101 2999

Pour que cela fonctionne correctement, assurez-vous de renseigner votre propre adresse IP à partir du serveur et de catcher le fichier ou le texte approprié que vous voulez envoyer.

En supposant que le réseau local est même marginalement rapide, les données devraient arriver assez rapidement, sinon instantanément. Une fois le transfert de données terminé, les deux côtés de la connexion cesseront et le serveur cessera d'écouter, puis fermera le port. Cela le rend efficace pour l'envoi ponctuel de données comme des fichiers journaux ou un document volumineux, mais ce n'est pas forcément pratique pour déplacer beaucoup de fichiers.

Comme déjà mentionné, vous pouvez rediriger n'importe quelle donnée, donc que ce soit la sortie d'une autre application, tail, cat, ou même directement à partir du presse-papier avec pbcopy et pbpaste, elle sera transférée via netcat.

Il convient de noter qu'il existe des moyens plus pratiques de partager un presse-papiers entre Mac ou entre un ordinateur Mac et Linux ou Windows, et dans ces situations, il est préférable d'utiliser des outils gratuits comme le partage d'entrée Teleport pour Mac vers Mac, ou le Utilitaire Synergy gratuit si vous passez d'une plateforme à l'autre entre Mac et PC. Les deux permettent à un utilisateur de partager des données de presse-papiers ainsi que des périphériques d'entrée comme une souris et un clavier.

Pour l'anecdote, bien que cette démonstration soit montrée sur deux Mac avec OS X, il n'y a aucune raison pour que vous ne puissiez pas utiliser netcat pour envoyer des données entre une machine Mac et Linux, ou vice versa.

Il y a des tas d'autres bonnes utilisations pour netcat là-bas, si vous avez des favoris, laissez-nous savoir dans les commentaires!