Servergilt für Debian 12 und 13, Pi OS
Wie richte ich einen NFS-Server für Linux-Rechner im Heimnetz ein?
Mehrere Linux-Rechner im Heimnetz sollen auf denselben Ordner zugreifen, etwa auf die Medien auf dem Raspberry Pi oder die Backups auf dem kleinen Server. Samba ginge auch, aber zwischen Linux-Rechnern ist NFS der einfachere Weg. Was muss auf Server und Client eingerichtet werden?
Lösung
Kurz: Auf dem Server nfs-kernel-server installieren, den Ordner in /etc/exports für das Heimnetz freigeben und exportfs -ra ausführen. Der Client braucht nfs-common und hängt die Freigabe mit mount -t nfs ein.
Server einrichten
sudo apt install nfs-kernel-server
sudo mkdir -p /srv/nfs/daten
In /etc/exports eine Zeile ergänzen. Sie gibt den Ordner für alle Rechner im Netz
192.168.178.0/24 frei, lesend und schreibend:
/srv/nfs/daten 192.168.178.0/24(rw,sync,no_subtree_check)
Zwischen der Netzangabe und der Klammer darf kein Leerzeichen stehen, sonst gelten die Optionen für alle Rechner der Welt und nur Lesen für das Heimnetz. Danach die Freigaben neu einlesen:
sudo exportfs -ra
sudo exportfs -v
Client einhängen
sudo apt install nfs-common
sudo mkdir -p /mnt/daten
sudo mount -t nfs 192.168.178.50:/srv/nfs/daten /mnt/daten
192.168.178.50 ist hier die Adresse des Servers. Welche Freigaben ein Server anbietet, zeigt
showmount -e 192.168.178.50.
Dauerhaft einhängen
Eine Zeile in der /etc/fstab des Clients hängt die Freigabe bei jedem Start ein.
_netdev sorgt dafür, dass das System damit auf das Netzwerk wartet:
192.168.178.50:/srv/nfs/daten /mnt/daten nfs defaults,_netdev 0 0
Testen ohne Neustart mit sudo mount -a.
Nachträge
Warum darf ich auf der Freigabe nicht schreiben?
NFS prüft die Rechte über die Benutzernummer, nicht über den Namen. Hat der Benutzer auf dem Client die
Nummer 1000 und gehört der Ordner auf dem Server der Nummer 1001, darf er nicht schreiben. Die Nummern zeigt
id. Am einfachsten gibt man dem Ordner auf dem Server den Besitzer mit derselben Nummer. Der
Benutzer root des Clients wird auf dem Server bewusst zu einem Benutzer ohne Rechte, das ist
root_squash und die Voreinstellung.
NFS oder Samba?
Zwischen Linux-Rechnern ist NFS schlanker und behält Linux-Rechte. Sollen auch Windows-Rechner zugreifen, ist Samba die bessere Wahl. Beides kann auf demselben Server parallel laufen, auch für denselben Ordner.
Der Start hängt, wenn der Server aus ist
Dann fehlt _netdev, oder der Client wartet auf eine Freigabe, die nicht kommt. Mit der Option
nofail in der fstab startet der Client trotzdem. Noch eleganter ist
x-systemd.automount: Dann wird die Freigabe erst beim ersten Zugriff eingehängt.