Good to Know Database

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?

Von 3 Min. Lesezeit

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.

Quellen