Ubuntu 20.04 unterstützt die NFS-Versionen 3 (NFSv3) und 4 (NFSv4). Die Standard-NFS-Version ist 4.2, die Unterstützung für Zugriffssteuerungslisten (ACLs), serverseitiges Kopieren, Sparse-Dateien, Speicherplatzreservierung, beschriftetes NFS, Layoutverbesserungen und vieles mehr bietet.
In diesem Handbuch erfahren Sie, wie Sie den NFS-Server und den NFS-Client unter Ubuntu 20.04 installieren und konfigurieren.
Verwandte Beiträge:
- Einrichten von NFS-Server und -Client auf Rocky/Alma Linux 8
- So installieren und konfigurieren Sie die Samba-Dateifreigabe unter Ubuntu 20.04
Voraussetzungen
- Aktualisierter Ubuntu 20.04 Server zur Verwendung als Server und ein weiterer für den Client
- Konnektivität von den Servern
- Sudo-Zugriff von den Servern
Inhaltsverzeichnis
- Stellen Sie sicher, dass der Server aktualisiert ist
- Installieren Sie die NFS-Pakete
- Starten und Aktivieren des NFS-Servers
- Aktivieren des NFS-Dienstes in der Firewall
- Konfigurieren von Exporten auf NFS-Server
- Einrichten von NFS-Client-Systemen
1. Sicherstellen, dass der Server auf dem neuesten Stand ist
Bevor Sie fortfahren, stellen Sie sicher, dass der Server auf dem neuesten Stand ist. Verwenden Sie diesen Befehl, um dies zu erreichen:
sudo apt update
sudo apt upgrade -y
2. Installieren Sie die NFS-Pakete
Das Paket nfs-kernel-server
bietet NFS-Dienste für Ubuntu. Das NFS-Serverpaket bietet Unterstützung für den Benutzerbereich, die zum Ausführen des NFS-Kernelservers erforderlich ist. Um das Paket zu installieren, führen Sie Folgendes aus:
sudo apt install -y nfs-kernel-server
Unter Ubuntu 20.04 ist NFS Version 2 deaktiviert. Die Versionen 3 und 4 sind aktiviert. Überprüfen Sie die installierte Version mit diesem Befehl:
$ sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
3. NFS-Server starten und aktivieren
Sobald die NFS-Pakete erfolgreich installiert wurden, wird der NFS-Server gestartet. Bestätigen Sie den Status des Dienstes mit diesem Befehl:
$ sudo systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2022-01-17 19:24:54 UTC; 1min 40s ago
Main PID: 20614 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4624)
Memory: 0B
CGroup: /system.slice/nfs-server.service
Jan 17 19:24:52 dev-ubuntusrv.inv.re systemd[1]: Starting NFS server and services...
Jan 17 19:24:54 dev-ubuntusrv.inv.re systemd[1]: Finished NFS server and services.
Die obige Ausgabe zeigt, dass der Dienst erfolgreich gestartet wurde. Um den Dienst beim Systemstart starten zu lassen, verwenden Sie diesen Befehl:
sudo systemctl enable nfs-server
Bitte beachten Sie, dass die anderen Dienste, die für den Betrieb eines NFS-Servers oder das Mounten von NFS-Freigaben erforderlich sind, wie nfsd
, nfs-idmapd
, rpcbind
, rpc.mountd
, lockd
, rpc.statd
, rpc.rquotad
und rpc.idmapd
wird automatisch gestartet.
4. Aktivieren des NFS-Dienstes in der Firewall
Wenn Sie den NFS-Server auf einem Remote-Ubuntu-Server installieren, der durch eine Firewall geschützt ist, müssen Sie den Datenverkehr auf dem NFS-Port aktivieren:
sudo ufw allow nfs
Überprüfen Sie die Änderung:
sudo ufw status
5. Exporte auf NFS-Server konfigurieren
Die NFS-Serverkonfiguration wird in /etc/default/nfs-kernel-server
definiert und /etc/default/nfs-common
Dateien. Die Standardeinstellungen sind für die meisten Situationen ausreichend.
Lassen Sie uns Dateisysteme zum Exportieren oder Freigeben auf dem NFS-Server erstellen. Wir werden zwei Dateisysteme zum Starren erstellen, /mnt/nfs_shares/files
für freigegebene Dateien und /mnt/nfs_shares/backup
für Sicherungen.
Lassen Sie uns die Verzeichnisse auf dem Server erstellen
sudo mkdir -p /mnt/nfs_shares/files
sudo mkdir -p /mnt/nfs_shares/backup
Bestätigen
$ sudo ls /mnt/nfs_shares
backup files
Fügen Sie dann die obigen Dateisysteme in der Exportdatei /etc/exports
hinzu im NFS-Server, um die lokalen Dateisysteme zu bestimmen, die an die NFS-Clients exportiert werden.
Öffnen Sie die Exportdatei mit Ihrem Texteditor
sudo vim /etc/exports
Fügen Sie dann diesen Inhalt hinzu:
/mnt/nfs_shares/files 10.70.5.170(rw,sync)
/mnt/nfs_shares/backup 10.70.5.0/24(rw,sync,no_all_squash,root_squash)
Dies sind die Exportoptionen, die verwendet werden können:
- w – erlaubt sowohl lesenden als auch schreibenden Zugriff auf das Dateisystem.
- synchronisieren – weist den NFS-Server an, Operationen zu schreiben (Informationen auf die Festplatte zu schreiben), wenn dies angefordert wird (gilt standardmäßig).
- all_squash – ordnet alle UIDs und GIDs von Client-Anfragen dem anonymen Benutzer zu.
- no_all_squash – verwendet, um alle UIDs und GIDs von Client-Anfragen auf identische UIDs und GIDs auf dem NFS-Server abzubilden.
- root_squash – ordnet Anfragen vom Root-Benutzer oder UID/GID 0 vom Client der anonymen UID/GID zu.
Sobald die Dateisysteme in der Exportdatei definiert sind, müssen wir die exportfs
ausführen Befehl, damit sie exportiert werden. Die exportfs können mit dem -a
ausgeführt werden Flag bedeutet Exportieren oder Exportieren aller Verzeichnisse, -r
d. h. alle Verzeichnisse erneut exportieren und /var/lib/nfs/etab synchronisieren mit /etc/exports und Dateien unter /etc/exports.d , und -v aktiviert die ausführliche Ausgabe.
sudo exportfs -arv
Dies ist die Ausgabe auf meinem Server
$ sudo exportfs -arv
exporting 10.70.5.170:/mnt/nfs_shares/files
exporting 10.70.5.0/24:/mnt/nfs_shares/backup
Führen Sie den folgenden Befehl aus, um die aktuelle Exportliste anzuzeigen. Bitte beachten Sie, dass die exportfs-Tabelle auch einige Standardoptionen anwendet, die nicht explizit definiert sind:
$ sudo exportfs -s
/mnt/nfs_shares/files 10.70.5.170(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/mnt/nfs_shares/backup 10.70.5.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
6. Einrichten von NFS-Client-Systemen
Nachdem wir die Exporte auf dem Server konfiguriert haben, können wir vom Clientsystem aus darauf zugreifen. Melden Sie sich beim Client-System an und installieren Sie die erforderlichen Pakete, um den Zugriff auf NFS-Freigaben zu ermöglichen.
Auf RHEL-basierten Systemen:
sudo dnf install -y nfs-utils nfs4-acl-tools
Auf Debian/Ubuntu-basierten Distributionen:
sudo apt install nfs-common nfs4-acl-tools
Wir können dann den Befehl showmount ausführen, um Mount-Informationen für den NFS-Server anzuzeigen. Der Befehl gibt exportierte Dateisysteme auf dem Server aus
showmount -e 10.70.5.221
Ausgabe
$ showmount -e 10.70.5.221
Export list for 10.70.5.221:
/mnt/nfs_shares/backup 10.70.5.0/24
/mnt/nfs_shares/files 10.70.5.170
Erstellen Sie ein lokales Dateisystemverzeichnis zum Mounten der entfernten NFS-Dateisysteme und hängen Sie es als NFS-Dateisystem ein
mkdir -p ~/backups
mkdir -p ~/nfs_files
sudo mount -t nfs 10.70.5.221:/mnt/nfs_shares/backup ~/backups
sudo mount -t nfs 10.70.5.221:/mnt/nfs_shares/files ~/nfs_files
Wir können dann bestätigen, dass das Remote-Dateisystem gemountet wurde, indem wir mount ausführen Befehl und Filter nfs Halterungen.
sudo mount | grep nfs
Ausgabe auf meinem Rechner
$ sudo mount | grep nfs
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
10.70.5.221:/mnt/nfs_shares/backup on /home/ubuntu/backups type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.70.5.170,local_lock=none,addr=10.70.5.221)
10.70.5.221:/mnt/nfs_shares/files on /home/ubuntu/nfs_files type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.70.5.170,local_lock=none,addr=10.70.5.221)
Damit die Einbindung auch nach einem Systemneustart dauerhaft bleibt, fügen Sie die Einträge zu /etc/fstab
hinzu Datei. Verwenden Sie diese Befehle (als root), um dies zu erreichen:
echo "10.70.5.221:/mnt/nfs_shares/backup /home/ubuntu/backups nfs defaults 0 0" >> /etc/fstab
echo "10.70.5.221:/mnt/nfs_shares/files /home/ubuntu/nfs_files nfs defaults 0 0" >> /etc/fstab
Testen Sie abschließend, ob NFS Setup funktioniert einwandfrei, indem Sie eine Datei auf dem Server erstellen und prüfen, ob die Datei im Client angezeigt wird.
Auf dem Server:
sudo touch /mnt/nfs_shares/files/file_on_server.txt
Dann auf dem Client-Rechner bestätigen
$ ls ~/nfs_files/
file_on_server.txt
Sie können auch umgekehrt vorgehen. Auf dem Client:
touch ~/nfs_files/file_on_client.txt
Dann auf dem Server bestätigen:
$ ls /mnt/nfs_shares/files/
file_on_client.txt file_on_server.txt
Um das entfernte Dateisystem auf der Client-Seite zu unmounten.
sudo umount /mnt/nfs_shares/files
sudo umount /mnt/nfs_shares/backup
Bitte beachten Sie, dass Sie nicht unmount
können das entfernte Dateisystem, wenn Sie darin arbeiten.
Schlussfolgerung
In dieser Anleitung haben wir es geschafft, einen NFS-Server und -Client auf Ubuntu 20.04 zu installieren und zu konfigurieren.