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
Welchen vorteil hat NFS gegenüber SMB?
Meiner Erfahrung nach ist es schneller und weniger kompliziert als SMB.
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.
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.
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.
ich würde meinem Post ja gerne ein paar Zeilenumbrüche spendieren
Hey, das ist MEIN Post 👻
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.
x-systemd.automount hilft mir nicht viel da MX-Linux mit sysvinit arbeitet.
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.
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.
@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.
@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.
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. 😉
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.