NFS (Network File System) ist ein Dateisystemprotokoll, mit dem Benutzer Dateien und Ordner auf einem Remote-System so anzeigen und darauf zugreifen können, als wären sie lokal gespeichert. Es handelt sich um eine Client-Server-Konfiguration, bei der das System, das den Speicher gemeinsam nutzt, als Server bezeichnet wird, während das System, das auf den auf einem Server gespeicherten Speicher zugreift, als Client bezeichnet wird. NFS ermöglicht es Benutzern oder Systemadministratoren, das Dateisystem eines Servers ganz oder teilweise auf dem System des Clients bereitzustellen. Clients können dann basierend auf bestimmten Berechtigungen (Lesen, Schreiben), die diesen Dateien zugewiesen sind, auf die gemounteten Dateien zugreifen.
Das Erstellen des NFS-Client-Server-Setups ist eine einfache Aufgabe, die in wenigen Schritten durchgeführt werden kann – Installation, Export, Mounten und Zugriff. In diesem Artikel erklären wir den Vorgang zum Einrichten eines NFS-Servers und -Clients auf einem Debian-System, damit Sie Dateien zwischen entfernten Systemen austauschen können.
Wir haben die in diesem Artikel erwähnten Befehle und Prozeduren auf einem Debian 10-System ausgeführt.
NFS-Server
Um ein Hostsystem für die gemeinsame Nutzung von Verzeichnissen einzurichten, müssen wir den NFS-Kernel-Server darin installieren. Führen Sie dazu die folgenden Schritte aus:
Schritt 1:Installieren Sie den NFS-Kernel-Server
Bevor Sie mit der Installation des NFS-Servers fortfahren, aktualisieren Sie Ihren System-Repository-Index, indem Sie den folgenden Befehl im Terminal ausführen:
$ sudo apt-get update
Installieren Sie nach der Aktualisierung den NFS-Kernel-Server, indem Sie den folgenden Befehl im Terminal ausführen:
$ sudo apt install nfs-kernel-system
Das System gibt Ihnen möglicherweise ein Y/n aus Möglichkeit, die Installation zu bestätigen. Drücken Sie y zu bestätigen und die Installation wird in Ihrem System gestartet.
Schritt 2:Exportverzeichnis erstellen
Jetzt müssen wir ein Exportverzeichnis erstellen, das für die gemeinsame Nutzung mit den Systemen des Kunden verwendet wird. Sie können es nach Ihren Wünschen beschriften. Hier erstellen wir ein Exportverzeichnis mit dem Namen „sharedfolder“ im Verzeichnis /mnt.
Führen Sie den folgenden Befehl aus, indem Sie den Exportverzeichnispfad wie folgt angeben:
$ sudo mkdir –p /mnt/sharedfolder
Um allen Clients Zugriff auf das Exportverzeichnis zu gewähren, müssen Sie restriktive Berechtigungen entfernen. Führen Sie dazu den folgenden Befehl aus:
$ sudo chown nobody:nogroup /mnt/sharedfolder
Wenden Sie dann eine neue Berechtigung an, die jedem Lese-, Schreib- und Ausführungszugriff gewährt.
$ sudo chmod 755 /mnt/sharedfolder
Dadurch können alle Clients auf den freigegebenen Ordner zugreifen.
Schritt 3:Konfigurieren Sie das Exportverzeichnis
Die Konfigurationsdatei für den NFS-Server befindet sich im Verzeichnis /etc/. Hier können Sie die Verzeichnisse angeben, die Sie für Ihre Clients freigeben möchten, zusammen mit dem Hostnamen der Clients. Um die Datei /etc/exports mit dem Nano-Editor zu bearbeiten, führen Sie den folgenden Befehl als sudo im Terminal aus:
$ sudo nano /etc/exports
Verwenden Sie das folgende Format, um Clients Zugriff zuzuweisen:
directory hostname(options)
Um den Zugriff auf einen einzelnen Client zu erlauben, fügen Sie die folgende Zeile hinzu:
/mnt/sharedfolder clientIP(rw,sync,no_subtree_check)
Um den Zugriff für mehrere Clients zu ermöglichen, fügen Sie die folgende Zeile hinzu:
/mnt/sharedfolder client1IP(rw,sync,no_subtree_check) /mnt/sharedfolder client2IP(rw,sync,no_subtree_check)
Um mehreren Clients den Zugriff zu ermöglichen, indem Sie ein ganzes Subnetz angeben, fügen Sie die folgende Zeile darin hinzu:
/mnt/sharedfolder subnetIP/24(rw,sync,no_subtree_check)
Hier geben wir das gesamte Subnetz für Clients an, um ihnen Zugriff auf unser gemeinsames Verzeichnis zu gewähren.
Wenn Sie mit der Bearbeitung der Datei /etc/exports fertig sind, drücken Sie Strg+O zum Speichern und Strg+X zum Verlassen der Datei.
Die Parameter (rw,sync,no_subtree_check) in der obigen Datei bedeuten, dass der Client die folgenden Berechtigungen hat:
- rw :Lese- und Schreiboperationen
- synchronisieren :Schreiben Sie alle Änderungen auf die Disc, bevor Sie sie anwenden
- no_subtree_check :keine Teilbaumprüfung
Schritt 4:Exportieren Sie das freigegebene Verzeichnis
Als nächstes müssen Sie in diesem Schritt das freigegebene Verzeichnis exportieren, das in /etc/exports aufgeführt ist. Führen Sie dazu den folgenden Befehl im Terminal aus:
$ sudo exportfs –a
Starten Sie dann den NFS-Kernel-Server neu, um die Konfigurationsänderungen zu übernehmen.
Schritt 5:Firewall konfigurieren
Jetzt ist es wichtig zu überprüfen, ob der Server für die Clients geöffnet ist, um auf die freigegebenen Inhalte zuzugreifen. Sie müssen die Regel hinzufügen, die Datenverkehr von den angegebenen Clients zum NFS-Port zulässt. Verwenden Sie dazu die folgende Syntax:
$ sudo ufw allow from [client-IP or client-Subnet] to any port nfs
In unserem Beispiel werden wir das gesamte Subnetz 192.168.72.0 für den NF-Port zulassen:
$ sudo ufw allow from 192.168.72.0/24 to any port nfs
Um nun zu überprüfen, ob die Regel erfolgreich hinzugefügt wurde, führen Sie den folgenden Befehl im Terminal aus:
$ sudo ufw status
Jetzt ist unser Host-NFS-Server konfiguriert und für den Zugriff durch die angegebenen Clients bereit.
Konfigurieren des Client-Rechners
Jetzt konfigurieren wir den Client-Computer so, dass er auf das Exportverzeichnis des Servers zugreift. Führen Sie dazu die folgenden Schritte aus:
Schritt 1:NFS-Client installieren
Aktualisieren Sie zunächst den Repository-Index Ihres Clientcomputers, indem Sie den folgenden Befehl im Terminal ausführen:
$ sudo apt-get update
Installieren Sie dann die als NFS common bekannte NFS-Client-Anwendung, indem Sie den folgenden Befehl im Terminal ausführen:
$ sudo apt-get install nfs-common
Das System gibt Ihnen möglicherweise ein Y/n aus Möglichkeit, die Installation zu bestätigen. Drücken Sie y zu bestätigen und die Installation wird in Ihrem System gestartet.
Schritt 2:Erstellen Sie einen Bereitstellungspunkt für den freigegebenen Ordner des NFS-Servers
Erstellen Sie nun einen Einhängepunkt, der für den Zugriff auf die freigegebenen Inhalte des Servers verwendet wird. Hier erstellen wir den Einhängepunkt mit dem Namen „sharedfolder_clientr“ im Verzeichnis /mnt. Dazu haben wir folgenden Befehl verwendet:
$ sudo mkdir -p /mnt/sharedfolder_client
Schritt 3:Mounten Sie das freigegebene Verzeichnis des Servers auf dem Client
Im vorherigen Schritt haben wir den Einhängepunkt erstellt. Jetzt werden wir das freigegebene Verzeichnis des NFS-Servers am oben erstellten Mount-Punkt mounten. Dazu kann folgende Syntax verwendet werden:
$ sudo mount serverIP:/exportFolder_server /mnt/mountfolder_client
In unserem Fall werden wir beispielsweise das freigegebene Verzeichnis „/mnt/sharedfolder“ vom NFS-Server zum Mount-Punkt „/mnt/mountfolder_client“ auf unserem Client-Rechner mounten.
$ sudo mount 192.168.72.164:/mnt/sharedfolder /mnt/sharedfolder_client
Wobei 192.168.72.164 die IP unseres NFS-Servers ist.
Jetzt wurde das freigegebene NFS-Verzeichnis auf dem Computer des Clients gemountet.
Schritt 4:Verbindung testen
Jetzt ist es an der Zeit, unser NFS-Client-Server-Setup zu testen. Erstellen Sie dazu eine Testdatei oder einen Testordner im freigegebenen Verzeichnis Ihres NFS-Servers. Wie im folgenden Beispiel können Sie sehen, dass wir zwei Ordner mit den Namen „Dokumente“ und „Musik“ in unserem freigegebenen Verzeichnis des NFS-Servers erstellt haben.
Öffnen Sie nun den Einhängepunkt auf Ihrem Client-Rechner. Sie sehen hier dieselben Dateien und Ordner, die im freigegebenen Verzeichnis des Servers erstellt wurden.
Das ist alles, was dazu gehört! Ich hoffe, Sie haben gelernt, den NFS-Server und -Client auf einem Debian 10-System zu installieren und einzurichten. Dieser Artikel behandelt auch den Zugriff auf den NFS-Host, um auf die freigegebenen Informationen zuzugreifen.