Les solutions logicielles qui peuvent vous aider à transférer des fichiers entre ordinateurs ne manquent pas. Cependant, si vous le faites très rarement, les solutions typiques telles que NFS et SFTP (via OpenSSH) peuvent être excessives. De plus, ces services sont ouverts en permanence à la réception et au traitement des connexions entrantes. Configuré de manière incorrecte, cela peut rendre votre appareil vulnérable à certaines attaques.
netcat, le « couteau de l’armée suisse TCP/IP », peut être utilisé comme solution ad hoc pour transférer des fichiers via des réseaux locaux ou Internet. Il est également utile pour transférer des données vers/depuis vos machines virtuelles ou conteneurs lorsqu’ils n’incluent pas la fonctionnalité prête à l’emploi. Vous pouvez même l’utiliser comme mécanisme de copier-coller entre deux appareils.
Contenu
Comment installer netcat sur diverses distributions Linux
La plupart des systèmes d’exploitation basés sur Linux sont livrés avec ce pré-installé. Ouvrez un terminal et tapez :
Si la commande n’est pas trouvée, installez le package qui contient netcat, une variante de BSD. Il existe également la version GNU de netcat qui contient moins de fonctionnalités. Vous avez besoin de netcat sur l’ordinateur recevant le fichier et celui qui l’envoie.
Sur les distributions basées sur Debian telles que Ubuntu ou Linux Mint, installez l’utilitaire avec :
Avec openSUSE, suivez les instructions sur cette page, spécifiques à votre distribution exacte.
Sur Arch Linux, entrez la commande suivante :
Malheureusement, la famille RedHat n’inclut pas les variantes BSD ou GNU de netcat. Pour une raison étrange, ils ont décidé d’utiliser nmap-ncat. Bien que similaires, certaines options de ligne de commande ne sont pas disponibles, par exemple -N. Cela signifie que vous devrez remplacer une ligne telle que nc -vlN 1234 > nc par nc -vl 1234 > nc pour que cela fonctionne sur RedHat/Fedora.
Pour installer ncat sur RedHat :
Et sur Fedora :
Comment utiliser netcat pour transférer des fichiers entre des ordinateurs Linux
Sur l’ordinateur qui recevra le fichier, recherchez l’adresse IP utilisée sur votre réseau interne.
Après « src », vous verrez l’adresse IP du réseau interne de l’appareil. Si, pour une raison quelconque, les résultats ne sont pas pertinents, vous pouvez également essayer :
Dans la capture d’écran proposée à titre d’exemple, l’IP est 10.11.12.10.
Sur le même ordinateur, celui qui recevra le fichier, saisissez cette commande :
Et sur l’ordinateur qui enverra le fichier, tapez ceci, en remplaçant 10.11.12.10 par l’IP que vous avez découverte plus tôt :
Les chemins de répertoire et de fichier peuvent être absolus ou relatifs. Un chemin absolu est « /home/user/Pictures/file.png ». Mais si vous êtes déjà dans « /home/user », vous pouvez utiliser le chemin relatif, « Pictures/file.png », comme le montre la capture d’écran ci-dessus.
Dans la première commande, deux paramètres étaient utilisés : -v et -l. -v rend la sortie verbeuse, affichant plus de détails, afin que vous puissiez voir ce qui se passe. -l fait « écouter » l’utilitaire sur le port 44444, ouvrant essentiellement un canal de communication sur le périphérique de réception. Si vous avez des règles de pare-feu actives, assurez-vous qu’elles ne bloquent pas la connexion.
Dans la deuxième commande, -N ferme netcat lorsque le transfert est terminé.
Normalement, netcat afficherait dans le terminal tout ce qu’il reçoit. > crée une redirection pour cette sortie. Au lieu de l’imprimer à l’écran, il envoie toute la sortie au fichier spécifié après >. < fonctionne à l'envers, en prenant l'entrée du fichier spécifié au lieu d'attendre l'entrée du clavier.
Si vous utilisez les commandes ci-dessus sans redirection, par exemple nc -vl 44444 et nc -N 10.11.12.10 44444, vous créez un « chat » rudimentaire entre les deux appareils. Si vous écrivez 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 appareil à l’autre. Appuyez sur Ctrl + D (sur l’expéditeur) ou Ctrl + C (n’importe où) pour fermer la connexion.
Optimiser les transferts de fichiers
Lorsque vous envoyez des fichiers volumineux, vous pouvez les compresser à la volée pour accélérer le transfert.
À la réception, saisissez :
Et sur l’expéditeur, saisissez ce qui suit, en remplaçant 10.11.12.10 par l’adresse IP de votre appareil de réception :
Envoyer et recevoir des répertoires
Évidemment, vous pouvez parfois vouloir envoyer plusieurs fichiers à la fois, par exemple, un répertoire entier. Ce qui suit les compressera également avant de les envoyer via le réseau.
Du côté de la réception, utilisez cette commande :
Sur l’appareil expéditeur, utilisez :
Conclusion
De préférence, vous ne l’utiliserez que sur votre réseau local. La principale raison est que le trafic réseau n’est pas crypté. Si vous l’envoyiez à un serveur, via Internet, vos paquets de données pourraient être interceptés le long du chemin du réseau. Mais si les fichiers que vous transférez ne contiennent pas de données sensibles, ce n’est pas un vrai problème. Cependant, les serveurs ont généralement SSH préconfiguré pour accepter les connexions FTP sécurisées, et vous pouvez utiliser SFTP à la place pour les transferts de fichiers.
Cet article est-il utile ? Oui Non