Es gibt keinen Mangel an Softwarelösungen, mit denen Sie Dateien zwischen Computern übertragen können. Wenn Sie dies jedoch sehr selten tun, sind die typischen Lösungen wie NFS und SFTP (über OpenSSH) möglicherweise übertrieben. Darüber hinaus sind diese Dienste permanent für den Empfang und die Verarbeitung eingehender Verbindungen geöffnet. Bei falscher Konfiguration ist Ihr Gerät möglicherweise für bestimmte Angriffe anfällig.
netcat
Das sogenannte „TCP / IP Schweizer Taschenmesser“ kann als Ad-hoc-Lösung für die Übertragung von Dateien über lokale Netzwerke oder das Internet verwendet werden. Dies ist auch nützlich, um Daten zu / von Ihren virtuellen Maschinen oder Containern zu übertragen, wenn diese nicht standardmäßig enthalten sind. Sie können es sogar als Kopier- und Einfügemechanismus zwischen zwei Geräten verwenden.
So installieren Sie netcat auf verschiedenen Linux-Distributionen
Auf den meisten Linux-basierten Betriebssystemen ist dies vorinstalliert. Öffnen Sie ein Terminal und geben Sie Folgendes ein:
netcat
Wenn der Befehl nicht gefunden wird, installieren Sie das Paket, das netcat, eine BSD-Variante, enthält. Es gibt auch die GNU-Version von netcat, die weniger Funktionen enthält. Sie benötigen netcat sowohl auf dem Computer, der die Datei empfängt, als auch auf dem Computer, der sie sendet.
Installieren Sie das Dienstprogramm auf Debian-basierten Distributionen wie Ubuntu oder Linux Mint mit:
sudo apt install netcat-openbsd
Mit openSUSE, Folgen Sie den Anweisungen auf dieser Seite, spezifisch für Ihre genaue Verteilung.
Geben Sie unter Arch Linux den folgenden Befehl ein:
sudo pacman -S openbsd-netcat
Leider enthält die RedHat-Familie keine BSD- oder GNU-Varianten von Netcat. Aus irgendeinem Grund haben sie sich für nmap-ncat entschieden. Obwohl ähnlich, sind einige Befehlszeilenoptionen beispielsweise nicht verfügbar -N
. Dies bedeutet, dass Sie eine Zeile wie ersetzen müssen nc -vlN 1234 > nc
mit nc -vl 1234 > nc
damit es auf RedHat / Fedora funktioniert.
So installieren Sie ncat auf RedHat:
sudo yum install nmap-ncat
Und zu Fedora:
sudo dnf install nmap-ncat
Verwendung von Netcat zum Übertragen von Dateien zwischen Linux-Computern
Suchen Sie auf dem Computer, auf dem die Datei empfangen wird, die in Ihrem internen Netzwerk verwendete IP-Adresse.
ip route get 8.8.8.8
Nach “src” sehen Sie die interne Netzwerk-IP-Adresse des Geräts. Wenn die Ergebnisse aus irgendeinem Grund irrelevant sind, können Sie auch Folgendes versuchen:
ip address
In dem als Beispiel angebotenen Screenshot lautet die IP 10.11.12.10.
Geben Sie auf demselben Computer, auf dem die Datei empfangen wird, den folgenden Befehl ein:
nc -vl 44444 > pick_desired_name_for_received_file
Geben Sie auf dem Computer, der die Datei sendet, Folgendes ein und ersetzen Sie 10.11.12.10 durch die zuvor erkannte IP-Adresse:
nc -N 10.11.12.10 44444 < /path/to/file/you/want/to/send
Verzeichnis- und Dateipfade können absolut oder relativ sein. Ein absoluter Pfad ist “/home/user/Pictures/file.png”. Wenn Sie sich jedoch bereits in “/ home / user” befinden, können Sie den relativen Pfad “Pictures / file.png” verwenden, wie im obigen Screenshot dargestellt.
Im ersten Befehl wurden zwei Parameter verwendet: -v
und -l
. -v
macht die Ausgabe ausführlich und druckt mehr Details, damit Sie sehen können, was los ist. -l
Lässt das Dienstprogramm an Port 44444 „lauschen“ und öffnet im Wesentlichen einen Kommunikationskanal auf dem empfangenden Gerät. Wenn Sie Firewall-Regeln aktiviert haben, stellen Sie sicher, dass diese die Verbindung nicht blockieren.
Im zweiten Befehl -N
Schließt Netcat, wenn die Übertragung abgeschlossen ist.
Normalerweise gibt netcat alles, was es empfängt, im Terminal aus. >
Erstellt eine Umleitung für diese Ausgabe. Anstatt es auf dem Bildschirm zu drucken, sendet es alle Ausgaben an die danach angegebene Datei >
. <
funktioniert in umgekehrter Reihenfolge und nimmt Eingaben aus der angegebenen Datei entgegen, anstatt auf Eingaben über die Tastatur zu warten.
Wenn Sie die obigen Befehle ohne Umleitungen verwenden, z. nc -vl 44444
und nc -N 10.11.12.10 44444
Sie erstellen einen rudimentären „Chat“ zwischen den beiden Geräten. Wenn Sie etwas in ein Terminal schreiben und die Eingabetaste drücken, wird es auf dem anderen Computer angezeigt. Auf diese Weise können Sie Text von einem Gerät auf das andere kopieren und einfügen. Drücken Sie Strg + D. (auf dem Absender) oder Strg + C. (überall), um die Verbindung zu schließen.
Dateiübertragungen optimieren
Wenn Sie große Dateien senden, können Sie diese im laufenden Betrieb komprimieren, um die Übertragung zu beschleunigen.
Geben Sie auf der Empfangsseite Folgendes ein:
nc -vl 44444 | gunzip > pick_desired_name_for_file
Geben Sie auf dem Absender Folgendes ein und ersetzen Sie 10.11.12.10 durch die IP-Adresse Ihres Empfangsgeräts:
gzip -c /path/to/file/you/want/to/send | nc -N 10.11.12.10 44444
Verzeichnisse senden und empfangen
Natürlich möchten Sie manchmal mehrere Dateien gleichzeitig senden, z. B. ein ganzes Verzeichnis. Im Folgenden werden sie auch komprimiert, bevor sie über das Netzwerk gesendet werden.
Verwenden Sie auf der Empfangsseite diesen Befehl:
nc -vl 44444 | tar zxv
Verwenden Sie auf dem sendenden Gerät:
tar czp /path/to/directory/to/send | nc -N 10.11.12.10 44444
Fazit
Am besten verwenden Sie dies nur in Ihrem lokalen Netzwerk. Der Hauptgrund ist, dass der Netzwerkverkehr unverschlüsselt ist. Wenn Sie dies über das Internet an einen Server senden würden, könnten Ihre Datenpakete entlang des Netzwerkpfads abgefangen werden. Wenn die von Ihnen übertragenen Dateien jedoch keine vertraulichen Daten enthalten, ist dies kein echtes Problem. Auf Servern ist SSH jedoch normalerweise so vorkonfiguriert, dass sichere FTP-Verbindungen akzeptiert werden, und Sie können stattdessen SFTP für Dateiübertragungen verwenden.