NFS-Client
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 24.04 Noble Numbat
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
⚓︎ Serverdienste – Übersichtsartikel
⚓︎ Heimnetzwerk – Einführender Artikel; betrifft vor allem einfache Anwendungen
Dieser Artikel ist Teil der Artikelserie über NFS. NFS steht für Network File System und dies ist ein bei Linux und anderen Arten von Unix gebräuchliches Protokoll für den Austausch von Dateien über das Netzwerk. Für technische Details und Grundlagen siehe die Übersichten[1][2][3].
Dieser Artikel behandelt Auswahl, Konfiguration und Gebrauch eines der von Ubuntu über offizielle Paketquellen bereit gestellten NFS-Clients. Eines solchen Client benötigt man immer für den Zugriff auf die von einem NFS-Server als Freigaben über das Netzwerk angebotenen Ordner und Dateien.
Der Artikel über NFS[3] wird für das Verständnis dieses Artikels vorausgesetzt.
Alternativen¶
Es gibt weitere Protokolle für die Aufgabe, Dateien über das Netzwerk zwischen einem Ubuntu-Rechner und anderen Rechnern, auch solchen mit anderen Betriebssystemen auszutauschen:
Auswahl¶
Es gibt im wesentlichen diese drei Methoden:
Die übliche, am meisten genutzte Methode arbeitet auf der Ebene des Betriebssystems. Zur lokalen Nutzung einer Freigabe eines über Netzwerk erreichbaren NFS-Servers wird
entweder die Freigabe auf der Kommandozeile direkt mit dem Befehl mount eingebunden
oder als einzubindendes Dateisystem in die Datei fstab[8] aufgenommen.
Man benutzt einen Dateimanager mit integriertem NFS-Client, beispielsweise Nautilus.
Man benutzt einen dedizierten NFS-Client, beispielsweise die in Java programmierte Applikation jftp. Diese und ähnliche Applikationen werden nicht empfohlen und hier nicht weiter berücksichtigt.
Installation¶
Zur Verwendung der ersten Methode reicht eine Installation des Pakets nfs-common 🇬🇧:
nfs-common („NFS-Dateien, die von Client und Server benutzt werden“, aus main)
Befehl zum Installieren der Pakete:
sudo apt-get install nfs-common
Für die Arbeitsweise auf grafischer Oberfläche muss in der Regel nichts installiert werden. Nautilus benötigt das Backend gvfsd-nfs aus dem Paket gvfs-backends 🇬🇧, aber das ist in der Regel bereits installiert.
Bedienung¶
Hinweis:
Die nachfolgend gezeigten Bedienungen und Befehle setzen voraus, dass im eigenen lokalen Netzwerk ein NFS-Server unter der IP-Adresse 192.168.178.25 erreichbar ist und dass dieser gemäß dem Howto NFS-Testserver konfiguriert wurde.
Dateimanager¶
Ein richtig und vollständig eingerichteter NFS-Server, konkret der aus dem o.g. Howto, wird im Fenster von Nautilus in der Netzwerkübersicht („Netzwerk durchsuchen …“) angezeigt, so wie im links nebenstehenden Bild gezeigt. (Der Maus-Pfeil zeigt auf den NFS-Server, die anderen sind SMB-Server.)
Ein Aktivierung-Klick auf das Symbolbild bindet die Freigabe vom NFS-Server ein, wie rechts stehend gezeigt.
Die Freigabe des NFS-Servers wird über das GVFS auf ein temporäres Verzeichnis unter /run/user/1000/gvfs/… (oder andere UID) eingebunden. Das funktioniert leider nur mit zwei Voraussetzungen:
Der Server muss das Protokoll NFSv3 akzeptieren, weil Nautilus (Stand: 24.04) nicht fehlerfrei NFSv4 spricht.
Entweder muss der Server auch die Verwendung nicht privilegierter Ports (privilegiert sind in der Regel Ports < 1024) erlauben,
oder das Backend gvfsd-nfs muss mit Root-Rechten[7] ausgeführt werden.
Kommandozeile¶
Informationen beschaffen¶
Man muss die IP-Adresse des NFS-Servers SERVER kennen oder aus einer symbolischen Adresse (Rechnername, DNS-Name) zuverlässig ermitteln können. Außerdem benötigt man die Bezeichnung der Freigabe FREIGABE; bei einem NFSv3-Server kann man diese auf der Kommandozeile[5][6] mit folgenden Befehl mit Root-Rechten[7] ermitteln:
sudo showmount -e 192.168.178.25
Beispielausgabe:
Export list for 192.168.178.25: /srv/nfs 192.168.0.0/16
Generell kann man alle benötigten Informationen erfragen, sofern man dem NFS-Server beigebracht hat, diese per Avahi anzupreisen:
avahi-browse -tr _nfs._tcp
Beispielausgabe:
+ cable IPv4 NFS-Server theophanu Network File System local = cable IPv4 NFS-Server theophanu Network File System local hostname = [theophanu.local] address = [192.168.178.25] port = [2049] txt = ["path=/srv/nfs"]
Manuell Einbinden¶
Zum Einbinden gibt man die Freigabe als URL mit Namensschema nfs, Server SERVER und Freigabe FREIGABE, sowie den Einbindepunkt EINBINDEPUNKT und als Typ nfs an.
Allgemeines Schema:
sudo mount -t nfs OPTIONen nfs://SERVER:FREIGABE EINBINDEPUNKT
Konkretes Beispiel:
sudo mkdir -p /mnt/tmp sudo mount -t nfs nfs://192.168.178.25:/srv/nfs /mnt/tmp
OPTIONen kann leer sein oder Angaben aus den allgemeinen Mount-Optionen und speziellen für NFS enthalten. Siehe dazu die Artikel über mount und fstab.
Einbinden durch Benutzer vorbereiten¶
Ärgerlich an dem vorstehend beschriebenem Verfahren ist, dass nur root es durchführen kann. Dies lässt sich über eine von root in der Datei fstab[8] hinterlegten Zeile ändern:
192.168.178.25:/srv/nfs /mnt/tmp nfs _netdev,noauto,nodev,noexec,rw,users
Damit reicht zu Einbindung dieser Befehl aus:
mount /mnt/tmp
Wenn man eine so eingebundene Freigabe in der grafischen Oberfläche sehen möchte, verwendet man einfach ein Unterverzeichnis von /media/ anstelle von /mnt/. Der Ort für die Einbindung in das lokale Dateisystem ist beliebig.
Artikel zu NFS¶
Links¶
NFS 🇩🇪 – Ausführliche Erklärung (für fortgeschrittene Benutzer) bei Selflinux
NFS 🇬🇧 – Eintrag im Archlinux-Wiki