17.2 Datentransfer in Linux/UNIX-Netzen
Im Folgenden wird gezeigt, wie Sie zwischen zwei Linux-Rechnern Daten austauschen können. Das kann beispielsweise Ihr Laptop sein, das mit dem häuslichen Desktop-PC synchronisiert werden soll. Andererseits können Sie mit den gezeigten Verfahren auch Daten über das Internet austauschen, vorausgesetzt, Sie sind im Besitz der entsprechenden Zugangsdaten.
17.2.1 Basiskommunikation mit SSH
Bevor man sich anschickt, Daten zwischen zwei Rechnern auszutauschen, sollte man versuchen, den einen Rechner über den zweiten von der Kommandozeile aus »fernzusteuern«. Das veraltete (und unsichere, weil abhörbare) Telnet-Verfahren wurde in der Vergangenheit durch die SSH (die Secure Shell) abgelöst. Um einen SSH-Server auf einem Rechner so aufzusetzen, dass sich die Benutzer auf diesem aus der Ferne (neudeutsch: remote) einloggen können, muss zunächst das openssh-server Paket auf dem Rechner installiert werden, der als Server[Das openssh-client] Paket wurde per Default installiert. fungieren soll:
user$ sudo apt-get install openssh-server
Nach der Installation des Pakets wird auf dem entsprechenden Rechner der SSH-Server gestartet, dies erkennt man z. B. mit folgendem Kommando:
user$ ps ax | grep sshd 15009 Ss 0:00 /usr/sbin/sshd
Nun können Sie versuchen, sich von einem im gleichen Netz befindlichen Client auf dem SSH-Server einzuloggen. Dazu öffnen Sie eine Konsole und geben das Kommando ssh <Rechnername/IP> ein. Wenn Sie das erste Mal versuchen, mit dem Server Kontakt aufzunehmen, müssen Sie die Verbindungsaufnahme explizit bestätigen:
user$ ssh flitzi The authenticity of host 'flitzi (192.168.0.103)' can't be established. RSA key fingerprint is 02:28:76:ef:ab:43:2a:60:91:78:d9:51:16:a6:27:ef. Are you sure you want to continue connecting (yes/no)? yes
Schließlich müssen Sie das Passwort Ihres Accounts auf dem Server eingeben. Dazu sollten Sie auf dem Rechner eingeloggt sein. Das Ganze setzt natürlich voraus, dass ein entsprechender Account auf dem Server existiert. Wer sich unter einem anderen Loginnamen einloggen möchte, gibt folgenden Befehl ein:
user$ ssh <Benutzername>@<Host>
wobei die Platzhalter entsprechend zu ersetzen sind. Nun können Sie sich auf dem entsprechenden Rechner bewegen, als würden Sie direkt davor sitzen. Sie können sogar Programme starten. Aber halt, werden Sie sagen, wie steht es mit graphischer Software, ich kann ja nicht sehen, was in den entsprechenden Fenstern ausgegeben wird … In diesem Fall bietet sich ein X-Tunnel an. Sie verlassen die SSH-Shell übrigens mit der Tastenkombination (Strg) + (D).
Dateien kopieren via scp
SSH kann noch viel mehr: Es ist sogar möglich, Dateien zwischen zwei Rechnern zu kopieren. Dazu ein Beispiel: Mit dem Befehl
user$ scp test1.txt hatt@192.168.0.1:~
wird die Datei test1.txt in das Heimverzeichnis (gekennzeichnet durch die Tilde »~«) des Benutzers hatt auf dem SSH-Server (IP: 192.168.0.1) kopiert. Die Syntax für den Pfad lautet dabei Benutzer@Server:<Pfad>.
Den umgekehrten Weg demonstriert der folgende Befehl:
user$ scp hatt@192.168.0.1:~/test.txt .
Hier wird eine Datei test2.txt vom Server in das aktuelle Verzeichnis kopiert (erkennbar an dem nachfolgenden Punkt ».« ). Die obige IP-Adresse ist natürlich den entsprechenden Gegebenheiten anzupassen, in jedem Fall muss vor dem Kopiervorgang das für den Benutzer definierte Passwort eingegeben werden. Nun ist das Kopieren auf der Kommandozeile nicht jedermanns Sache, schöner wäre es, wenn man hierzu einen Dateimanager verwenden könnte. Kein Problem: Starten Sie unter GNOME den Remotezugriff auf einen SSH-Server über Orte · Verbindung zu Server. In dem folgenden Menü (Abbildung 17.3) definieren Sie die IP oder den Namen des Servers (Letzteres bietet sich an, wenn dieser in Ihrer Datei /etc/hosts verzeichnet ist). Als Dienst wird SSH angegeben. Darüber hinaus können Sie außerdem ein Startverzeichnis angeben, in das direkt nach dem Einloggen gewechselt wird.
Abbildung 17.3 Mit dem Server verbinden.
Durch die obigen Schritte wird auf dem Desktop ein kleines Icon erzeugt, das die Verbindung repräsentiert. Wenn Sie das Icon durch Anklicken öffnen, werden Sie nach Ihrem Serverpasswort gefragt, und schließlich zeigt Nautilus die entsprechenden Inhalte auf dem Server an. Nun können Sie in gewohnter Weise Daten zwischen Client und Server kopieren.
KDE-Nutzer können den Universalbrowser Konqueror in ähnlicher Weise einsetzen. Dazu starten Sie eine Konqueror-Instanz und geben in der Adresszeile den Servernamen bzw. dessen IP wie folgt ein:
fish://192.168.0.103
Das Kopieren funktioniert dann wie oben beschrieben in Verbindung mit einem weiteren Konqueror-Fenster.
Abbildung 17.4 Der Konqueror bietet den Transfer über SSH frei Haus.
17.2.2 NFS einsetzen
Bequemer als die im vorangegangenen Abschnitt beschriebene Methode via scp ist der Aufbau eines dedizierten Fileservers unter UNIX/Linux. Dies erfolgt unter Benutzung des NFS (Network File Systems).
Stellen Sie zunächst sicher, dass folgende Pakete auf Ihrem System installiert sind:
- nfs-common
- nfs-kernel-server
- portmap
In folgendem Beispiel soll auf einem Server mit der IP 192.168.0.1 ein explizites Tauschverzeichnis namens tausch unter /media angelegt werden, auf das ein Client mit der IP 192.168.0.103 zugreifen soll. Der Client soll in dem entsprechenden Verzeichnis Lese- und Schreibrecht besitzen.
Wir legen zunächst das entsprechende Verzeichnis an und setzen die Rechte:
user$ sudo mkdir /media/tausch user$ sudo chmod ugo+rw /media/tausch
Nun ist es erforderlich, dass das neu erstellte Verzeichnis zum Export via NFS freigegeben wird. Dazu ist die Datei /etc/exports[Mehr zum Aufbau dieser Datei erfahren Sie durch Eingabe von man exports]. folgendermaßen zu editieren:
user$ sudo nano /etc/exports # Auszug aus /etc/exports /media/tausch 192.168.0.103/255.255.255.0(rw)
Der Parameter rw steht hierbei für Lese-/Schreibberechtigung. Zusätzlich zur IP des Rechners muss noch die Subnetzmaske definiert werden. Weiterhin muss der entsprechende Rechner in der Datei /etc/hosts. allow eingetragen werden:
user$ sudo nano /etc/hosts.allow # Auszug aus /etc/hosts.allow 192.168.0.103
Abschließend wird der NFS-Server mit den folgendem Befehl neu gestartet:
user$ sudo /etc/init.d/nfs-kernel-server restart
Nun können Sie versuchen, das Exportverzeichnis des Servers vom Client aus einzubinden. Dazu sollte auf dem Client sowohl das nfs-common-Paket als auch der Portmapper installiert sein. Das erledigen Sie bequem mittels sudo apt-get install nfs-common. Gehen Sie dann zum Einbinden des Verzeichnisses folgendermaßen vor:
user$ sudo mkdir /media/server user$ sudo mount -t nfs 192.168.0.1:/media/tausch \ /media/server/
Nun können Sie beliebig Dateien mit dem Server über das Tauschverzeichnis tauschen.
Wem die Einrichtung über die Kommandozeile zu kompliziert ist, der kann den Austausch von Ordnern auch über das Menü System · Systemverwaltung · Gemeinsame Ordner einrichten. Hierbei handelt es sich um ein bequemes Frontend für den Export von NFS-Shares (siehe Abbildung 17.5).
Abbildung 17.5 graphisches Frontend zum Export von NFS-Shares unter GNOME.
Möchten Sie das NFS-Verzeichnis dauerhaft auf dem Client importieren, so ist ein Eintrag in die Datei /etc/fstab in der folgenden Gestalt vorzunehmen (bitte in eine Zeile schreiben):
user$ sudo nano /etc/fstab # Auszug aus /etc/fstab 192.168.0.1:/media/tausch /media/server nfs rw,rsize=8192,wsize=8192 0 0
Dabei wurde über die Parameter rsize und wsize ein kleines Tuning vorgenommen, das den Datentransfer beschleunigen soll.
17.2.3 FTP-Server nutzen
Der Vollständigkeit halber soll an dieser Stelle noch kurz der Zugriff auf FTP-Server beschrieben werden. Damit ist nicht etwa der triviale Download von Inhalten wie z. B. Ubuntu-ISOs über einen Browser durch Angabe einer URL der Form ftp:// von einem öffentlichen Server gemeint, sondern das Login auf einem nicht-öffentlichen Server, um beispielsweise HTML-Content abzulegen.
Die beschriebene Aufgabe lässt sich sowohl unter KDE als auch unter GNOME mit dem jeweiligen Systembrowser erledigen, also dem Konqueror bzw. Nautilus. Geben Sie die Adresse des Servers, mit dem Sie per FTP Daten austauschen möchten, auf der Adresszeile des Browsers ein. Diese ist im Nautilus per Default nicht sichtbar, Sie erreichen die Adresszeile durch Eingabe von (Strg) + (L). Im Falle eines nicht-öffentlichen Servers wird nun der Loginname sowie das Passwort abgefragt – fertig (Abbildung 17.6).
Abbildung 17.6 FTP-Server nutzen mit Nautilus
Das Hin- und Herkopieren erfolgt dann mit den browsereigenen Mitteln per Drag and Drop. Hardcore-Konsolenfreaks schätzen an dieser Stelle die Möglichkeit, das File Transfer Protocol mit dem Befehl ftp auch von der Kommandozeile aus zu bedienen. Dazu öffnet man mittels
user$ ftp <Servername / IP>
eine FTP-Verbindung zum entsprechenden Server. Mittels get können nun einzelne Dateien vom Server heruntergeladen, mittels put hochgeladen werden. Die restlichen Befehle ähneln dem alltäglichen Umgang innerhalb einer UNIX-Shell. Der FTP-Konsolenclient kann schließlich mittels quit wieder verlassen werden.
Wesentlich bequemer loggt man sich aber über den Menüpunkt Orte • Verbindung zu Server im GNOME-Standardmenü auf einem FTP-Server ein, dieses Tool wurde ja bereits in Abschnitt 17.2.1 vorgestellt. Es muss hier lediglich der Dienstetyp FTP mit Zugangsbeschränkung ausgewählt werden.
17.2.4 Datenaustausch über Peer-to-Peer-Netze
Es ist schon ärgerlich: Jedesmal, wenn ein neues Ubuntu-Release in Form eines ISOs auf dem offiziellen Server oder auch einem Mirror abgelegt wird, glühen die Leitungen, und man kann froh sein, ein wenig Bandbreite zugeteilt zu bekommen. Ein weiteres Problem stellt sich dann, wenn man eines der riesigen DVD-ISOs auf den heimischen PC befördern möchte: Hier kann es vorkommen, dass der Download mittendrin abbricht.
Für die oben genannten Anwendungsbereiche bietet sich die Methode des Peer-to-Peer-Downloads über das BitTorrent-Netzwerk an. Vorbildlicherweise ist in Ubuntu ein BitTorrent-Client integriert. Wenn Sie damit die neueste Ubuntu-Version downloaden möchten, ist folgendermaßen zu verfahren:
Navigieren Sie mit dem Standardsystembrowser zum Downloadverzeichnis des Ubuntu-Servers http://www.ubuntu.com/download und wählen Sie dort einen deutschen Mirror aus. Als Beispiel wollen wir im Folgenden ein DVD-ISO herunterladen. Dazu folgen Sie dem Link im oberen Seitenbereich, der Sie zu http://cdimage.ubuntu.com/releases/dapper/ release führt. Klicken Sie hier die entsprechende Datei mit der Endung .torrent an, und der BitTorrent-Downloadmanager wird nach Bestätigung des folgenden Dialogs automatisch gestartet (Abbildung 17.7). Nun müssen Sie lediglich den Speicherort der Datei angeben, und die Datei wird häppchenweise auf Ihren Rechner befördert. Sollten Sie den entsprechenden Download schon einmal gestartet haben, so kann dieser fortgesetzt werden – ein probates Mittel bei Verbindungsstörungen bzw. -abbrüchen.
Abbildung 17.7 Der GNOME-BitTorrent-Client in Aktion
aMule
Jeder kennt eMule. Die beliebte Tauschbörse ist natürlich auch unter Linux verfügbar, das entsprechende Paket nennt sich hier aMule (another eMule file-sharing program). Seit neuestem liegt aMule im Ubuntu-Repository in der aktuellsten Version
2.0.3 vor und benutzt die Library wxgtk2.6. Damit entfällt die bislang übliche Eigeninstallation von der Entwicklerseite. Nach der Installation des Paketes mittels sudo apt-get install amule erscheint das Programm im GNOME-Menü unter Anwendungen •
Internet.
Ähnlich wie BitTorrent verwendet man aMule im Ubuntu-Umfeld als Peer-to-Peer-System zur Verbreitung von ISO-Images auch oder gerade bei Verwendung von schmalbandigen Internetanschlüssen.
Abbildung 17.8 Filesharing mit aMule
Nehmen wie einmal an, Sie suchen eine alte Ubuntu-Version, die Sie auf einem betagten Rechner installieren möchten. Nach dem Programmstart wird zunächst eine Serverliste aus dem Internet geholt. Wählen Sie einen der angezeigten Server aus und verbinden Sie sich mit einem rechten Mausklick. Nun wechseln Sie in das Untermenü Suchen, geben einen Suchbegriff ein und harren der Ergebnisse (Abbildung 17.8). Der Download wird schließlich per Doppelklick über dem entsprechenden Objekt gestartet. Überflüssig an dieser Stelle zu erwähnen, dass Sie besonderes Augenmerk auf die rechtlich einwandfreie Herkunft der Dateien legen sollten.