NFS (Network File System) ist ein unter Linux / UNIX bewährtes und schnelles Netzwerk-Protokoll zum Verteilen von Dateien im lokalen Netzwerk. Es ist schneller als Samba (SMB), das vor allem in Verbindung mit Windows-Rechnern im Einsatz kommt. Das Aufsetzen eines NFS-Servers nimmt zwar einige Minuten mehr in Anspruch als SMB, lohnt sich aber.
Inhaltsverzeichnis
NFS-Server aufsetzen
Diese Anleitung gilt nur für auf Debian basierenden Linux-Distributionen, da sich unter anderen Distributionen die Namen der Pakete unterscheiden können. Als Erstes gilt es zu unterscheiden – zumindest ein Rechner muss im lokalen Netzwerk als Server konfiguriert werden – auf diesem werden die Dateien gespeichert. Die weiteren Rechner dienen anschließend als Clients – natürlich kann man auch mehrere Server aufsetzen.
Wichtig – Die Benutzer aller Systeme sollten auf allen Rechnern dieselbe UID haben – siehe adduser oder für bestehende Benutzer usermod. Ebenfalls ist es vorteilhaft, wenn jeder Rechner im lokalen Netzwerk seine statische IP-Adresse hat – siehe /etc/host.
Unter auf Debian basierenden Linux-Distributionen installieren Sie über die Paket-Verwaltung für den Server das Paket „nfs-kernel-server„, auf den Clients das Paket „nfs-common„.
Anschließend gilt es den Server einzurichten – speziell gilt es die Freigaben anzugeben, dies gelingt über die Datei „/etc/exports„. Diese Datei öffnen wir mit administrativen Rechten am Terminal mit dem Befehl:
nano /etc/exports
Hier haben wir die Standardeinträge der Datei noch einmal als Text:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
Jetzt legt man die Freigaben in der oben genannten Datei an. Sie können mehrere Freigaben erstellen – also mehrere Verzeichnisse freigeben, auf für unterschiedliche Rechner unterschiedliche Freigaben erstellen. Pro Zeile gibt man eine Freigabe an – deren Syntax sieht so aus:
/Pfad/zur/Freigabe/ Rechner-Name/oder Rechner-IP-Adresse(Optionen)
Sehen wir uns zu Beginn einmal die Optionen an, mit diesen wird geregelt, wer was mit welcher Freigabe anfangen kann:
- rw – Lesen und Schreiben
- ro – Lesen
- sync – Daten werden sofort übertragen und geändert (etwa beim Speichern auf dem Server von einem anderen Rechner aus)
- async – Schneller als „sync„, kann aber etwa bei Stromausfällen (Absturtz) zum Verlust von Daten führen
Es gibt natürlich noch weitere Optionen, für lokale Netzwerke ist aber kaum mehr nötig. Wollen wir einmal einen Versuch starten – ich möchte dem Rechner „robert_desktop“ Zugriff auf das Verzeichnis „/home/robert/“ gewähren, natürlich lesend und schreibend:
/home/robert/ robert_desktop(sync,rw)
Jetzt möchte ich dem Rechner „robert_laptop“ ebenfalls Zugriff gewähren, aber nur lesend:
/home/robert/ robert_desktop(rw,sync)
/home/robert/ robert_laptop(ro,sync)
Dies lässt sich auch mit einer einzelnen Zeile lösen:
/home/robert/ robert_desktop(rw,sync) robert_laptop(ro,sync)
Statt des Namens des Rechners lässt sich alternativ natürlich auch die IP-Adresse nutzen. Auch können Sie natürlich einen kompletten IP-Adressbereich angeben, statt einzelner Rechner-Namen oder Rechner-IP-Adressen. Im Beispiel für die IP-Adressen von „192.168.1.1“ bis „192.168.1.255“ (Standard für private Netzwerke):
/home/robert/Musik/ 192.168.1.0/255.255.255.0(rw,sync)
Damit Clients mit ihren Rechner-Namen zugreifen können – haben Sie diese in der Datei eingetragen, müssen diese auch in der Datei „/etc/hosts“ aufscheinen – wie im Link beschrieben.
Haben Sie die Datei „/etc/exports“ entsprechend angepasst, wird diese mit Strg+o gespeichert – Sie bestätigen die Nachfrage mit Eingabe und schließend den Editor mit Strg+x.
Jetzt soll NFS die Einstellungen neu einlesen und der Server neu gestartet werden, dies gelingt mit den Befehlen:
exportfs -ra
systemctl restart nfs-kernel-server
Starten Sie jetzt den Befehl:
showmount -e NFS_SERVER
können Sie Ihre Freigaben ansehen. Haben Sie eine Firewall aufgesetzt, gilt es die Ports „2049/tcp“ und „2049/udp“ freizuschalten – siehe auch GUFW.
Auf NFS-Freigaben zugreifen
Zu Beginn erstellen wir auf dem Client mit administrativen Rechten auf dem Terminal ein Verzeichnis unter „/media/„, im Beispiel nenne ich dieses ganz einfach „nfs-freigabe„:
mkdir /media/nfs-freigabe
Jetzt gibt es zwei Möglichkeiten, die Freigabe einzuhängen – manuell und automatisch (hierfür muss der Client anschließend neu gestartet werden). Versuchen wir es einmal manuell – die IP-Adresse des Servers lautet „192.168.1.0„, die Freigabe „/home/robert/“ – am Terminal mit administrativen Rechten:
mount 192.168.1.0:/home/robert/ /media/nfs-freigabe/
Im Dateimanager finden Sie anschließend in der Orte-Liste den neuen Eintrag und Sie können darauf zugreifen. Die Automatische Konfiguration erstellen Sie mit administrativen Rechten in der Datei „/etc/fstab“ am Terminal:
nano /etc/fstab
Fügen Sie eine neue Zeile ein – mit dem obigen Beispiel:
192.168.1.0:/home/robert/Musik/ /media/nfs-freigabe/
Noch keine Reaktion