NFS wurde ursprünglich von Sun’s Microsystems entwickelt und ist ein Akronym für Network File System. Es handelt sich um ein verteiltes Protokoll, das es einem Benutzer auf einem Client-PC ermöglicht, auf gemeinsam genutzte Dateien von einem Remote-Server zuzugreifen, ähnlich wie er auf Dateien zugreifen würde, die sich lokal auf seinem PC befinden. Das NFS-Protokoll bietet eine bequeme Möglichkeit, Dateien über ein lokales Netzwerk (LAN) gemeinsam zu nutzen. In dieser Anleitung führen wir Sie durch die Installation des NFS-Servers auf Ubuntu 20.04 LTS (Focal Fossa). Anschließend zeigen wir Ihnen, wie Sie von einem Client-System aus auf Dateien auf dem Server zugreifen können.
Lab-Setup
NFS Server IP: 192.168.2.103 Ubuntu 20.04 Client System IP: 192.168.2.105 Ubuntu 20.04
Schritt 1) Installieren Sie das NFS-Kernel-Serverpaket
Um zu beginnen, werden wir das NFS-Kernel-Server-Paket auf Ubuntu installieren, das es in einen NFS-Server verwandeln wird. Aber zuerst aktualisieren wir die Paketliste wie gezeigt.
$ sudo apt update
Führen Sie danach den folgenden Befehl aus, um das NFS-Kernel-Serverpaket zu installieren.
$ sudo apt install nfs-kernel-server
Dadurch werden zusätzliche Pakete wie keyutils, nfs-common, rpcbind und andere Abhängigkeiten installiert, die erforderlich sind, damit der NFS-Server wie erwartet funktioniert.
Sie können überprüfen, ob der nfs-Server-Dienst wie gezeigt ausgeführt wird
$ sudo systemctl status nfs-server
Schritt 2) Erstellen Sie eine NFS-Verzeichnisfreigabe
Der nächste Schritt besteht darin, eine NFS-Verzeichnisfreigabe zu erstellen. Dies ist das Verzeichnis, in dem wir Dateien ablegen, die über das lokale Netzwerk freigegeben werden sollen. Wir werden es wie unten gezeigt im Verzeichnis /mnt/ erstellen. Hier heißt unser NFS-Freigabeverzeichnis /my_shares. Geben Sie Ihrem Verzeichnis einen beliebigen Namen.
$ sudo mkdir /mnt/my_shares
Da wir möchten, dass alle Dateien für alle Clients zugänglich sind, werden wir die folgenden Verzeichnisbesitzer und -berechtigungen zuweisen.
$ sudo chown nobody:nogroup /mnt/my_shares $ sudo chmod -R 777 /mnt/my_shares
Diese Berechtigungen sind rekursiv und gelten für alle Dateien und Unterverzeichnisse, die Sie erstellen werden.
Schritt 3) Gewähren Sie Clients Zugriff auf den NFS-Server
Nachdem Sie die NFS-Verzeichnisfreigabe erstellt und die erforderlichen Berechtigungen und Eigentumsrechte zugewiesen haben, müssen wir den Clientsystemen den Zugriff auf den NFS-Server gewähren. Wir werden dies erreichen, indem wir die Datei /etc/exports bearbeiten, die während der Installation des Pakets nfs-kernel-server erstellt wurde.
Öffnen Sie also die Datei /etc/exports.
$ sudo vi /etc/exports
Um den Zugriff auf einen einzelnen Client zuzulassen, fügen Sie die folgende Zeile hinzu und ersetzen Sie den Client-IP-Parameter durch die tatsächliche IP des Clients.
/mnt/my_shares client-IP(rw,sync,no_subtree_check)
Um weitere Clients zur Liste hinzuzufügen, geben Sie einfach mehr Zeilen wie gezeigt an:
/mnt/my_shares client-IP-1(rw,sync,no_subtree_check) /mnt/my_shares client-IP-2(rw,sync,no_subtree_check) /mnt/my_shares client-IP-3(rw,sync,no_subtree_check)
Zusätzlich können Sie ein ganzes Subnetz angeben wie gezeigt.
/mnt/my_shares 192.168.0.0/24 (rw,sync,no_subtree_check)
Dies ermöglicht allen Clients im Subnetz 192.168.0.0 den Zugriff auf den Server. In unserem Fall gewähren wir allen Clients wie gezeigt Zugriff auf den NFS-Server
/mnt/my_shares 192.168.2.0/24(rw,sync,no_subtree_check)
Lassen Sie uns kurz die Berechtigungen durchgehen und wofür sie stehen.
- rw (Lesen und Schreiben)
- sync (Änderungen vor dem Anwenden auf die Festplatte schreiben)
- no_subtree_check (Unterbaumprüfung vermeiden)
Schritt 4 ) Exportieren Sie das freigegebene Verzeichnis
Um das Verzeichnis zu exportieren und verfügbar zu machen, rufen Sie den Befehl auf:
$ sudo exportfs -a
Schritt 5) Konfigurieren Sie die Firewall-Regel für den NFS-Server
Wenn Sie sich hinter einer UFW-Firewall befinden, müssen Sie NFS-Datenverkehr über die Firewall mit der gezeigten Syntax zulassen.
$ sudo ufw allow from [client-IP or client-subnet-IP] to any port nfs
In unserem Fall sieht der Befehl wie folgt aus:
$ sudo ufw allow from 192.168.2.0/24 to any port nfs
Wir sind jetzt alle gut mit der Konfiguration des NFS-Servers. Der nächste Schritt besteht darin, den Client zu konfigurieren und zu testen, ob Ihre Konfiguration funktioniert. Fahren wir also fort und konfigurieren den Client.
Schritt 5) Konfigurieren Sie das Client-System
Melden Sie sich nun beim Client-System an und aktualisieren Sie den Paketindex wie gezeigt.
$ sudo apt update
Als nächstes installieren Sie das Paket nfs-common wie gezeigt.
$ sudo apt install nfs-common
Erstellen Sie dann ein Verzeichnis im /mnt-Ordner, in dem Sie die NFS-Freigabe vom Server einhängen.
$ sudo mkdir -p /mnt/client_shared_folder
Hängen Sie schließlich das Remote-NFS-Freigabeverzeichnis wie folgt in das Client-Verzeichnis ein.
$ sudo mount 192.168.2.103:/mnt/my_shares /mnt/client_shared_folder
Schritt 6) Testen der Einrichtung der NFS-Freigabe
Um zu testen, ob unsere Konfiguration funktioniert, erstellen wir wie gezeigt eine Testdatei im NFS-Verzeichnis
$ cd /mnt/my_shares $ touch nfs_share.txt
Lassen Sie uns nun zu unserem Client zurückkehren und sehen, ob wir die Datei in unserem gemounteten Verzeichnis sehen können
$ ls /mnt/client_shared_folder/
Und voila! Dorthin geht unsere Datei, wie im Snippet unten gezeigt. Dies ist die Bestätigung, dass unsere Einrichtung erfolgreich war.
Das war `s für heute. Wir hoffen, dass dieser Leitfaden für Sie von Nutzen war und dass Sie bequem Dateien mit NFS in Ihrem Netzwerk freigeben können.