Viele Linux-Anwender, ob nun etwas erfahrener oder neu im Serverbereich, nutzen hauptsächlich Samba für den Dateizugriff. Oftmals geschieht dies, weil NFS im Vergleich komplizierter erscheint. Es gibt viele Details und Schritte, die im Gegensatz zu Samba oder FTP beachtet werden müssen. Dies führt dazu, dass viele Linux-Nutzer auf NFS verzichten, was jedoch schade ist, da es viele praktische Funktionen und Einsatzmöglichkeiten bietet. Daher haben wir uns entschlossen, die Einrichtung eines NFS-Servers zu vereinfachen. Im Folgenden erläutern wir detailliert, wie Sie NFS-Freigaben unter Linux hosten und einen Server in Betrieb nehmen können.
Installation
Im Grunde genommen verwenden alle Linux-Distributionen dieselben NFS-Tools, auch wenn es hier und da kleine Unterschiede geben kann. Damit alles reibungslos funktioniert, öffnen Sie ein Terminal und installieren Sie die notwendigen Pakete auf Ihrem System. Diese Pakete installieren die grundlegende Technologie, die für den Betrieb des Servers erforderlich ist, erstellen die Standardkonfigurationsdateien und nehmen gelegentlich auch weitere Einstellungen vor.
Ubuntu
sudo apt install nfs-kernel-server
Fedora
sudo dnf install nfs-utils system-config-nfs
Arch-Linux
sudo pacman -S nfs-utils
Debian
sudo apt-get install nfs-kernel-server
OpenSUSE
sudo zypper install nfs-kernel-server
Andere Linux-Distributionen
Das NFS-Dateisystem, sowohl der Client als auch der Server, sind etablierte Technologien. Daher können Sie es problemlos auf fast jeder Linux-Distribution zum Laufen bringen. Wenn Ihre Distribution oben nicht aufgeführt wurde, suchen Sie im Paketmanager nach „nfs utils“ oder konsultieren Sie das Wiki Ihrer Distribution.
Systemd-Dienste
Die Einrichtung eines NFS-Servers kann sich je nach verwendeter Linux-Distribution unterscheiden. Zum Beispiel werden bei der Installation des Ubuntu- oder Debian-NFS-Pakets die Systemd-Dienste automatisch eingerichtet und konfiguriert. Bei Arch Linux, SUSE oder Fedora ist dies jedoch manuell erforderlich. Hier ist, wie Sie diese Dienste aktivieren:
Wenn Sie Arch Linux, Open SUSE oder Fedora (oder eine andere Distribution verwenden, die die Systemd-Dienste für NFS nicht automatisch einrichtet) nutzen, öffnen Sie ein Terminal und geben Sie die folgenden Befehle ein:
sudo systemctl enable rpcbind
sudo systemctl enable nfs-server
sudo service rpcbind start
sudo service nfs-server start
Konfiguration
Die Installation der NFS-Pakete richtet den Server zwar ein, bedeutet aber noch nicht, dass Benutzer darauf zugreifen können. Dazu müssen Exporte, Dateispeicherorte und andere Dinge konfiguriert werden. Um zu beginnen, benötigen Sie eine Root-Shell im Terminal. Verwenden Sie dazu: sudo -s
Die Exportdatei kann jegliche Art von Verzeichnissen verarbeiten. Benutzer können theoretisch direkt einen Pfad zu einem Ordner angeben, den sie im Dateisystem freigeben möchten. Dies birgt jedoch ein erhebliches Sicherheitsrisiko. Es ist viel sicherer, den Inhalt eines Verzeichnisses an einen anderen Ort zu binden. Dadurch wird sichergestellt, dass die Berechtigungen für Ordner und Verzeichnisse im Ordner /srv/ nicht verändert werden müssen, was die Sicherheit erhöht.
Um beispielsweise eine NFS-Freigabe des Bilderordners eines Benutzers einzurichten, gehen Sie wie folgt vor:
mkdir -p /srv/nfs/pictures /home/benutzername/Bilder/
mount --bind /home/benutzername/Bilder/ /srv/nfs/pictures/
Verwenden Sie das obige Beispiel, um so viele Bind-Mounts zu erstellen, wie Sie benötigen. Beachten Sie, dass es nicht notwendig ist, Verzeichnisse aus Home-Ordnern einzuhängen. Verwenden Sie stattdessen dieses Beispiel und werden Sie kreativ.
Nachdem alles eingerichtet ist, verwenden Sie diese Befehle, um sicherzustellen, dass die Mounts bestehen bleiben:
echo '#NFS Bilder Bind Mount' >> /etc/fstab
echo '/home/benutzername/Bilder/ /srv/nfs/pictures/ none bind 0 0' >> /etc/fstab
Hinweis: Sie müssen die Echo-Befehle an Ihre eigenen Mount-Punkte anpassen.
Sobald die Mounts eingerichtet sind, ist es an der Zeit, die Exportkonfigurationsdatei zu bearbeiten. Diese Datei ist entscheidend, da Sie hier jede Dateifreigabe definieren, die NFS nutzen soll.
nano /etc/exports
Fügen Sie am Ende der Exportdatei Folgendes hinzu:
/srv/nfs/pictures/ 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)
Fügen Sie so viele Zeilen hinzu, wie Sie benötigen. Beachten Sie, dass jede Freigabe ihren eigenen Mount, fstab-Eintrag und /etc/exports-Eintrag benötigt.
Hinweis: Speichern Sie die Exportdatei mit STRG + O.
Änderungen aktualisieren
Der NFS-Server ist aktiv, die Dateien sind an ihrem Platz, und alles ist bereit. Der letzte Schritt ist das Aktualisieren der Änderungen an der Exportdatei. Dies ist wichtig, da der NFS-Server keine Änderungen automatisch während der Laufzeit aktualisiert. Übernehmen Sie die Änderungen mit: exportfs -rav
Falls nötig, starten Sie den Serverprozess innerhalb von systemd neu, indem Sie den Befehl systemctl restart verwenden.
sudo systemctl restart nfs-server.
Fazit
Das Network File System ist ein nützliches Werkzeug, mit dem Benutzer mühelos auf entfernte Dateien und Verzeichnisse zugreifen und diese lokal verwenden können, als wären sie eine physische Festplatte. Das ist ein Vorteil, da konkurrierende Netzwerkdateisystem-Tools den Benutzern nicht die gleiche Flexibilität bieten.
Trotz seiner Nützlichkeit bevorzugen die meisten Benutzer Samba. Das ist verständlich, da NFS im Vergleich zu Samba etwas komplizierter einzurichten sein kann. Wenn man sich jedoch mit dem anspruchsvollen Einrichtungsprozess auseinandersetzt, ist es die Mühe wert.