Video: Wie du deinen eigenen NFS-Server einrichtest

  Lioh Möller   Lesezeit: 7 Minuten  🗪 15 Kommentare Auf Mastodon ansehen

In meinem Video führe ich dich Schritt für Schritt durch die Einrichtung eines NFS-Servers unter Linux. Wir beginnen mit der Installation der erforderlichen Pakete und gehen dann weiter zur Erstellung einer Freigabe.

video: wie du deinen eigenen nfs-server einrichtest

Einrichtung eines NFS-Servers

In meinem neuesten Video zeige ich euch, wie ihr ganz einfach einen NFS-Server (Network File System) auf einem Linux-System einrichten könnt. Egal, ob ihr Dateien zwischen verschiedenen Geräten in eurem Netzwerk austauschen oder einfach nur lernen wollt, wie NFS funktioniert – dieses Tutorial ist genau das Richtige für euch!

Installation des NFS-Servers

Zuerst installieren wir das notwendige Paket „nfs-kernel-server“ auf unserem Server. Dies geschieht ganz einfach über den Terminal mit dem Befehl:

sudo apt install nfs-kernel-server

Nach der Installation aktivieren wir den NFS-Dienst mit systemd, um sicherzustellen, dass unser Server bereit ist, Dateien zu teilen.

sudo systemctl enable --now nfs-kernel-server

Freigabeverzeichnis erstellen

Jetzt erstellen wir ein Verzeichnis, das wir freigeben möchten. In meinem Beispiel verwenden wir den Pfad /media/share. Dies könnt ihr mit dem folgenden Befehl tun:

sudo mkdir -p /media/share

Netzwerkdetails überprüfen

Um die IP-Adresse unseres Servers zu ermitteln, verwenden wir den Befehl:

sudo ip a s

In meinem Fall ist die IP-Adresse „192.168.1.140“. Diese Information benötigen wir gleich für die Konfiguration.

NFS-Server konfigurieren

Jetzt geht es an die Konfiguration des NFS-Servers. Wir öffnen die Datei /etc/exports und fügen die Freigabe hinzu.

Hier erlauben wir den Zugriff für unser gesamtes lokales Netzwerk „192.168.1.0/24“ mit Lese- und Schreibrechten (rw) und der Option „no_root_squash“, damit auch der Root-Benutzer auf die Freigabe zugreifen kann. Der Eintrag könnte so aussehen:

sudo nano /etc/exports

/media/share 192.168.1.0/32(rw,no_root_squash)

Nach dem Speichern der Datei aktivieren wir die Freigabe mit:

sudo exportfs -a

NFS-Client konfigurieren

Nun ist es an der Zeit, unseren Client vorzubereiten. Hierfür installieren wir das Paket „nfs-common“:

sudo apt install nfs-common

Wir erstellen ein Verzeichnis zum Einbinden, das wir unter „/mnt/share“ ablegen:

sudo mkdir -p /mnt/share

Um die Verbindung zum NFS-Server herzustellen, fügen wir einen Eintrag in die Datei /etc/fstab hinzu. Dieser Eintrag sorgt dafür, dass das Verzeichnis automatisch gemountet wird. Der Eintrag könnte wie folgt aussehen:

sudo nano /etc/fstab

192.168.1.140:/media/share /mnt/share nfs x-systemd.automount,rw 0 0

Mounten des Verzeichnisses

Nachdem wir die Änderungen in der fstab gespeichert haben, mounten wir das Share mit folgendem Befehl:

sudo mount /mnt/share

Dateien austauschen

Alles, was wir im freigegebenen Verzeichnis auf dem Server erstellen, ist sofort auf dem Client sichtbar! Ein wichtiger Hinweis: Um den Zugriff für normale Benutzer zu ermöglichen, sollten die Benutzer auf beiden Systemen die gleiche User-ID haben. Alternativ könnt ihr auch eine Gruppe erstellen, um den Zugriff zu verwalten.

Fazit

In diesem Video habe ich euch Schritt für Schritt gezeigt, wie ihr einen NFS-Server und -Client in einem lokalen Netzwerk einrichtet, um auf einfache Weise Daten auszutauschen. Ich hoffe, ihr fandet das Tutorial hilfreich! Vergesst nicht, euch unserer Community anzuschließen. Wenn ihr Fragen habt, schreibt sie mir in die Kommentare!

TuxWiz

Hast du Lust, das Linux-Betriebssystem auf eine unterhaltsame Weise kennenzulernen? Dann schau unbedingt auf meinem YouTube-Kanal TuxWiz vorbei! ✨

Ich habe speziell für Einsteiger eine Playlist erstellt, die dich Schritt für Schritt durch die aufregende Welt von Linux und Freier Software führt. Also starte von Anfang an – du wirst sehen, wie viel Spass es macht!

Die Linux-Lernvideos bauen auf meiner Debian GNU/Linux basierenden Distribution SpaceFun auf. Viele der bei Einsteiger_innen beliebten Linux-Distros wie Mint, MX Linux oder Ubuntu stammen ebenfalls aus dieser kosmischen Familie. Falls du eine andere Distro nutzt, keine Sorge – die grundlegenden Mechanismen sind universell und lassen sich problemlos übertragen.

Ich freue mich auch, wenn du mir auf Mastodon folgst. Dort erfährst du immer sofort, wenn es etwas Neues zu entdecken gibt.

Mein Kanal auf YouTube: https://www.youtube.com/@tuxwiz

Die Einsteiger-Playlist: https://www.youtube.com/playlist?list=PLJlnbs0kQiZiWks57CPOoCOnUlFwbZWQp

Tags

NFS, Server

👓
Geschrieben von 👓 am 17. Februar 2025 um 07:33

Welchen vorteil hat NFS gegenüber SMB?

Apu
Geschrieben von Apu am 17. Februar 2025 um 09:05

Meiner Erfahrung nach ist es schneller und weniger kompliziert als SMB.

Ken Guruh
Geschrieben von Ken Guruh am 17. Februar 2025 um 09:33

In diesem Kontext SMB=Samba? NFS ist in reiner Linux-Umgebung deutlich einfacher zu administrieren. Einen Benutzer einfach einer Gruppe hinzufügen und schon hat dieser Benutzer die gleichen Rechte wie die ihm zugeordnete Gruppe. Samba erlaubt prinzipiell auch den Zugriff auf Freigaben via Windows und erlaubt das viel genauere Justieren der Benutzerrechte. Damit wird Samba deutlich sicherer, aber auch um ein Vielfaches komplizierter.

Peter
Geschrieben von Peter am 17. Februar 2025 um 20:11

Drei Fragen habe ich dazu: Wie reagiert der Client wenn der Server nicht zur Verfügung steht? Da der Eintrag in der fstab steht könnte es Probleme geben da der Server nicht gefunden wird. Erkennt der Client den Server automatisch wenn dieser an's Netz geht? Funktioniert in diesem Zusammenhang mittlerweile die automount Funktion mit autofs? Vor ein paar Jahren hatte ich damit mal experimentiert und es hat nicht funktioniert wenn der Server nicht am Netz war, der Client hatte sich aufgehängt.

Bernd
Geschrieben von Bernd am 17. Februar 2025 um 21:36

Dafür gibt es Optionen in der fstab: nofail Das Laufwerk wird bei "nicht vorhanden sein" (z.B. USB-Sticks, mobile Datenträger) übersprungen. Hilfreich, da sonst der Bootvorgang "hängen" bleibt, wenn der eingetragene Datenträger nicht vorhanden ist. _netdev Das einzubindende Dateisystem befindet sich auf einem Device, das Netzwerkzugriff benötigt. Das Einbinden wird daher solange hinausgezögert, bis Netzwerkzugriff besteht.

Bernd
Geschrieben von Bernd am 17. Februar 2025 um 21:37

ich würde meinem Post ja gerne ein paar Zeilenumbrüche spendieren

Lioh Möller
Geschrieben von Lioh Möller am 18. Februar 2025 um 06:40

Hey, das ist MEIN Post 👻

Lioh Möller
Geschrieben von Lioh Möller am 18. Februar 2025 um 06:42

Das ist richtig, danke für die Ergänzungen. x-systemd.automount sorgt allerdings dafür, dass das Share nur gemounted wird, wenn ein Zugriff stattfindet. Sofern es nicht verfügbar ist, passiert nichts.

Peter
Geschrieben von Peter am 18. Februar 2025 um 16:42

x-systemd.automount hilft mir nicht viel da MX-Linux mit sysvinit arbeitet.

The_Raven
Geschrieben von The_Raven am 18. Februar 2025 um 17:35

Korrekt, aber wenn das Netzwerk beim booten da ist hängt er den Share ein. Verschwindet dann jedoch das Netzwerk (z.B. kein WLAN mehr) gibts Ärger. Dann hängt nämlich das ganze System. Und ich vermute darauf will Peter hinaus. Vor langer Zeit habe ich mal damit herum gespielt und ich erinnere mich noch schwach an eine Option "lazy" oder sowas. Damit trennt er den Share falls die Verbindung weg ist.

Nick
Geschrieben von Nick am 18. Februar 2025 um 19:34

Der Beitrag kommt genau richtig, denn ich habe neulich einen gebrauchten 70 EUR "Mini PC" erstanden, den ich in -sagen wir mal- näherer Zukunft als eine Art "ad hoc" Mini Fileserver verwenden möchte.

Vor Jahren hatte ich das schon mal mit Linux Clients und einem Raspi 3 (2GB RAM, SD Karte) im WLAN getestet. Funktioniert hatte es, aber eher lahmar***. Offenbar hatte ich da gleich mehrere "Flaschenhälse".

In der fstab hatte ich übrigens nichts, sondern ich habe die Server mit einem Skript gestartet und auch jeweils bedarfsweise mit einem Skript gemounted (war ja nur testweise, und ohnehin eher "temporär").

Für meinen neuen Mini PC habe ich jetzt ein 10m LAN Kabel. Es ist eine 2.5" SSD mit leider nur 256GB vorhanden. Aber: Es gibt einen freien M2 NVMe SSD Slot (zwei, aber bestückt ist nur einer).

Ein anderes Thema sind Wireguard, DHCP und jeweils der 'domainname'.

Mit DHCP werden jeweils andere IP vergeben, und mit Lubuntu hatte ich einfach den domainname genommen, was mir später mit Debian nicht mehr gelang. Kann sehr gut sein, dass ich mich da etwas blöd angestellt habe.

Peter
Geschrieben von Peter am 19. Februar 2025 um 10:42

@the_Raven: Genau das ist das Problem bei nfs. Sobald der nfs-Server ausfällt, hängen die Clients und es hilft nur noch ein reboot der Clients. Ich suche so die Lösung selbständiges mounten wenn der Server da ist und selbständiges unmounten, wenn er wieder weg ist.

Peter
Geschrieben von Peter am 19. Februar 2025 um 11:57

@The_Raven: Genau das ist das Hauptproblem bei nfs, wenn der Server plötzlich nciht mehr da ist, hängen alle Clients und meistens hilft nur ein reboot der Clients. Die nfs-Lösung, die ich suche ist ein selbständiges Einhängen des Servers wenn er sichtbar ist und auch ein selbständiges Aushängen, wenn er vom Netz geht, ohne dass die Clients abschmieren.

The_Raven
Geschrieben von The_Raven am 19. Februar 2025 um 19:56

Das ist ein Problem ich weiss. 😬 Vor Jahren habe ich mal ausgiebig damit herum gespielt. Die "Lösung" war soweit ich mich erinnere den Share mittels "umount -f -l /mnt/nfs-share" aus zu hängen. Option -f für force und zusätzlich -l für lazy wenn er nicht mehr da ist. Falls es sich um Clients handelt die regelmässig die Verbindung verlieren würde ich zusätzlich noch den Cache deaktivieren. Weiss nicht mehr wie genau das geht, vielleicht gibt es eine "nocache" option oder "directio" (kann man ja duckduckgoen). Mir ist übrigens keine Möglichkeit bekannt das aus-/einhängen zu automatisieren wenn der Server online oder offline ist. Wenn ich dieses Problem lösen müsste würde ich (Quick&Dirty 🤟) ein Bash-Script machen das den Server alle 5 Sekunden anpingt, wenn der Server antwortet wird der Share gemountet, wenn er keine Antwort mehr gibt wird er ausgehängt. Wenn du Hilfe brauchst kann ich dir auch was basteln. 😉

Peter
Geschrieben von Peter am 20. Februar 2025 um 12:35

Ich habe es jetzt nochmal getestet mit autofs und es ist immer noch so, wenn der Server sich verabschiedet dann hängen sich die Clients auf. Da hilft auch keine timeout Option denn sobald z. B. ein Dateimanager noch offen ist, gilt das anscheinend als Zugriff. Den Befehl umount -f -l werde ich mal ausprobieren aber das ist natürlich lästig denn wenn man den mal vergisst, dann hängt sich der Client auf. Ob das mit dem Server anpingen helfen würde weiß ich nicht, denn wenn er keine Antwort mehr gibt, dann ist er schon weg und dann kann ich ihn auch nicht mehr unmounten.