Comment utiliser Netcat pour transférer rapidement des fichiers entre ordinateurs exécutant Linux

Les solutions logicielles pouvant vous aider à transférer des fichiers entre ordinateurs ne manquent pas. Cependant, si vous faites cela très rarement, les solutions classiques telles que NFS et SFTP (via OpenSSH) peuvent être surestimées. De plus, ces services sont ouverts en permanence pour recevoir et traiter les communications entrantes. S'il n'est pas configuré correctement, votre appareil peut être vulnérable à certaines attaques.

Netcat, le soi-disant Swiss Army Knife TCP / IP, peut être utilisé comme solution dédiée au transfert de fichiers via LAN ou Internet. Il est également utile de transférer des données depuis / vers des machines virtuelles ou des conteneurs lorsque celles-ci ne sont pas incluses dans la fonctionnalité. Vous pouvez même l'utiliser comme mécanisme copier / coller entre deux appareils.

Comment utiliser Netcat pour transférer rapidement des fichiers entre ordinateurs avec Linux - Linux

Comment installer netcat sur différentes distributions Linux

La plupart des systèmes d'exploitation fonctionnant sous Linux sont livrés avec netcat pré-installé. Ouvrez le terminal et tapez:

netcat
Comment utiliser Netcat pour transférer rapidement des fichiers entre ordinateurs avec Linux - Linux

Si la commande est introuvable, installez le package contenant netcat, qui est une variable BSD. Il existe également une version GNU de netcat comportant moins de fonctionnalités. Vous avez besoin d’un netcat sur l’ordinateur qui reçoit le fichier et celui que vous envoyez.

Sur les distributions basées sur Debian telles que Ubuntu ou Linux Mint, installez l'utilitaire avec:

sudo apt install netcat-openbsd

En utilisant openSUSE, suivez les instructions sur cette page , Pour votre distribution précise.

Dans Arch Linux, entrez la commande suivante:

sudo pacman -S openbsd-netcat

Malheureusement, la famille RedHat n'inclut pas les variantes BSD ou GNU de netcat. Pour une raison étrange, ils ont décidé d'utiliser le nmap-ncat. Bien que certaines options de ligne de commande soient similaires, elles ne sont pas disponibles, par exemple -N. Cela signifie que vous devrez remplacer une police comme nc -vlN 1234> nc par nc -vl 1234> nc pour qu'elle fonctionne sur RedHat / Fedora.

Pour installer ncat Sur RedHat:

sudo yum install nmap-ncat

Fedora:

sudo dnf install nmap-ncat

Comment utiliser netcat pour transférer des fichiers entre ordinateurs Linux

Sur l'ordinateur qui recevra le fichier, recherchez l'adresse IP utilisée sur votre réseau interne.

ip route get 8.8.8.8

Après "src"Vous verrez l’adresse IP du réseau interne de l’appareil. Si les résultats, pour une raison quelconque, ne sont pas pertinents, vous pouvez également expérimenter:

ip address
Comment utiliser Netcat pour transférer rapidement des fichiers entre ordinateurs avec Linux - Linux

Dans la capture d'écran présentée à titre d'exemple, l'adresse IP est 10.11.12.10.

Sur le même ordinateur qui recevra le fichier, entrez cette commande:

nc -vl 44444 > pick_desired_name_for_received_file
Comment utiliser Netcat pour transférer rapidement des fichiers entre ordinateurs avec Linux - Linux

Sur l'ordinateur qui enverra le fichier, tapez ceci et remplacez le numéro 10.11.12.10 IP que j'ai découvert plus tôt:

nc -N 10.11.12.10 44444 < /path/to/file/you/want/to/send
Comment utiliser Netcat pour transférer rapidement des fichiers entre ordinateurs avec Linux - Linux

Les chemins de répertoire et de fichier peuvent être absolus ou relatifs. Le chemin absolu est "/home/user/Pictures/file.png"Il a dit. Mais si vous êtes déjà dans le " maison / utilisateur", Vous pouvez utiliser le chemin relatif"Pictures / file.png", Comme indiqué dans l'image ci-dessus.

Dans le premier ordre, deux paramètres ont été utilisés: -v et - l، -v Génère une sortie détaillée pour plus de détails afin que vous puissiez voir ce qui se passe. -l Permet à l'outil "d'écouter" sur le port 44444, en ouvrant essentiellement un canal de connexion sur le récepteur. Si les règles de pare-feu sont actives, assurez-vous qu'elles ne bloquent pas la connexion.

Dans le second ordre, -N Fait netcat Il se ferme lorsque le transfert est terminé.

Généralement, il va produire netcat Au Terminal que tout a été reçu. > Crée une redirection pour cette sortie. Au lieu de l’imprimer à l’écran, il envoie chaque sortie au fichier spécifié après>. <Cela fonctionne en sens inverse, en prenant une entrée du fichier sélectionné au lieu d'attendre une entrée du clavier.

Si vous utilisez les commandes ci-dessus sans redirections, par exemple, nc -vl 44444 et nc -N 10.11.12.10 44444 , Vous pouvez créer un "chat" primitif entre les deux appareils. Si vous tapez quelque chose dans un terminal et appuyez sur Entrée, il apparaîtra sur l'autre ordinateur. C’est ainsi que vous pouvez copier et coller du texte d’un périphérique à un autre. Clique sur Ctrl + D (Sur l'expéditeur) ou Ctrl + C (N'importe où) pour fermer la connexion.

Transfert de fichier amélioré

Lorsque vous envoyez des fichiers volumineux, vous pouvez facilement les compresser pour augmenter la vitesse de transfert.

À la réception, entrez:

nc -vl 44444 | gunzip> pick_desired_name_for_file

Sur l’émetteur, entrez ce qui suit et remplacez le numéro 10.11.12.10 Adresse IP de votre récepteur:

gzip -c /path/to/file/you/want/to/send | nc -N 10.11.12.10 44444

Envoyer et recevoir des dossiers

Il est clair que vous souhaiterez parfois envoyer plusieurs fichiers à la fois, par exemple un dossier complet. La prochaine pression le compressera également avant de l'envoyer sur le réseau.

Sur le destinataire, utilisez cette commande:

nc -vl 44444 | tar zxv

Comment utiliser Netcat pour transférer rapidement des fichiers entre ordinateurs avec Linux - Linux

Sur l'émetteur, utilisez:

tar czp /path/to/directory/to/send | nc -N 10.11.12.10 44444
Comment utiliser Netcat pour transférer rapidement des fichiers entre ordinateurs avec Linux - Linux

Conclusion

De préférence, cela ne sera utilisé que sur votre réseau local. La raison principale est que le trafic provenant du réseau n'est pas chiffré. Si vous envoyez ceci à un serveur, Internet peut intercepter vos paquets de données le long du chemin réseau. Mais si les fichiers que vous téléchargez ne contiennent pas de données sensibles, le problème n'est pas réel. Cependant, SSH est généralement préinstallé sur les serveurs pour accepter les connexions FTP sécurisées. Vous pouvez également utiliser SFTP pour transférer des fichiers.

Aller au bouton supérieur