NFS Server · 6 min read · Dec 08, 2025

Einrichten eines NFS-Servers und -Clients auf CentOS 7.2

Diese Anleitung erklärt, wie man einen NFS-Server und einen NFS-Client auf CentOS 7 einrichtet. NFS steht für Network File System; über NFS kann ein Client auf einen Remote-Share auf einem NFS-Server zugreifen (lesen, schreiben), als ob er sich auf der lokalen Festplatte befände. Ich werde einen minimalen CentOS 7.2-Server als Grundlage für die Installation verwenden.

1 Vorbemerkung

Ich verwende hier zwei CentOS-Systeme:

  • NFS-Server: server.example.com, IP-Adresse: 192.168.1.100
  • NFS-Client: client.example.com, IP-Adresse: 192.168.1.101

Ich werde den Nano-Editor in diesem Tutorial verwenden, um Konfigurationsdateien zu bearbeiten. Nano kann wie folgt installiert werden.

yum -y install nano

2 Firewall konfigurieren

Ich empfehle, eine Firewall installiert zu haben. Wenn Sie noch keine firewalld installiert haben und eine Firewall verwenden möchten, installieren Sie sie mit diesen Befehlen:

yum -y install firewalld

Starten Sie die Firewall und aktivieren Sie sie, damit sie beim Booten gestartet wird.

systemctl start firewalld.service  
systemctl enable firewalld.service

Öffnen Sie als Nächstes die SSH- und NFS-Ports, um sicherzustellen, dass Sie sich per SSH für Verwaltungszwecke mit dem Server verbinden und über NFS von unserem NFS-Client aus zugreifen können.

firebase-cmd --permanent --zone=public --add-service=ssh  
firebase-cmd --permanent --zone=public --add-service=nfs  
firebase-cmd --reload

3 NFS installieren

server:

Auf dem NFS-Server führen wir aus:

yum -y install nfs-utils

Aktivieren und starten Sie dann den NFS-Serverdienst.

systemctl enable nfs-server.service  
systemctl start nfs-server.service

client:

Auf dem Client können wir NFS wie folgt installieren (das ist tatsächlich dasselbe wie auf dem Server):

yum install nfs-utils

4 Verzeichnisse auf dem Server exportieren

server:

Ich möchte die Verzeichnisse /home und /var/nfs für den Client zugänglich machen; daher müssen wir sie auf dem Server “exportieren”.

Wenn ein Client auf einen NFS-Share zugreift, geschieht dies normalerweise als Benutzer nfsnobody. Normalerweise gehört das Verzeichnis /home nicht nfsnobody (und ich empfehle nicht, dessen Eigentum auf nfsnobody zu ändern!), und da wir auf /home lesen und schreiben möchten, teilen wir NFS mit, dass Zugriffe als root erfolgen sollen (wenn unser /home-Share schreibgeschützt wäre, wäre dies nicht notwendig). Das Verzeichnis /var/nfs existiert nicht, also können wir es erstellen und dessen Eigentum auf den Benutzer und die Gruppe nfsnobody ändern.

mkdir /var/nfs  
chown nfsnobody:nfsnobody /var/nfs  
chmod 755 /var/nfs

Jetzt müssen wir /etc/exports ändern, wo wir unsere NFS-Shares “exportieren”. Wir geben /home und /var/nfs als NFS-Shares an und teilen NFS mit, dass Zugriffe auf /home als root erfolgen sollen (um mehr über /etc/exports, sein Format und verfügbare Optionen zu erfahren, schauen Sie sich an

man 5 exports

)

nano /etc/exports
/home           192.168.1.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs        192.168.1.101(rw,sync,no_subtree_check)

(Das no_root_squash-Option sorgt dafür, dass /home als root zugegriffen wird.)

Wann immer wir /etc/exports ändern, müssen wir ausführen:

exportfs -a

um die Änderungen wirksam zu machen.

5 NFS-Shares auf dem Client einhängen

client:

Zuerst erstellen wir die Verzeichnisse, in denen wir die NFS-Shares einhängen möchten, z.B.:

mkdir -p /mnt/nfs/home  
mkdir -p /mnt/nfs/var/nfs

Danach können wir sie wie folgt einhängen:

mount 192.168.1.100:/home /mnt/nfs/home  
mount 192.168.1.100:/var/nfs /mnt/nfs/var/nfs

Sie sollten jetzt die beiden NFS-Shares in den Ausgaben von

df -h

sehen können.

[root@client ~]# df -h  
Dateisystem Größe Benutzt Verfügbar Benutzt% Eingehängt in  
/dev/mapper/centos-root 28G 1.7G 26G 7% /  
devtmpfs 909M 0 909M 0% /dev  
tmpfs 919M 0 919M 0% /dev/shm  
tmpfs 919M 8.6M 910M 1% /run  
tmpfs 919M 0 919M 0% /sys/fs/cgroup  
/dev/sda1 497M 208M 290M 42% /boot  
tmpfs 184M 0 184M 0% /run/user/0  
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home  
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

und

mount
[root@client ~]# mount  
sysfs auf /sys Typ sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)  
proc auf /proc Typ proc (rw,nosuid,nodev,noexec,relatime)  
devtmpfs auf /dev Typ devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)  
securityfs auf /sys/kernel/security Typ securityfs (rw,nosuid,nodev,noexec,relatime)  
tmpfs auf /dev/shm Typ tmpfs (rw,nosuid,nodev,seclabel)  
devpts auf /dev/pts Typ devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)  
tmpfs auf /run Typ tmpfs (rw,nosuid,nodev,seclabel,mode=755)  
tmpfs auf /sys/fs/cgroup Typ tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)  
cgroup auf /sys/fs/cgroup/systemd Typ cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)  
pstore auf /sys/fs/pstore Typ pstore (rw,nosuid,nodev,noexec,relatime)  
cgroup auf /sys/fs/cgroup/perf_event Typ cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)  
cgroup auf /sys/fs/cgroup/hugetlb Typ cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)  
cgroup auf /sys/fs/cgroup/devices Typ cgroup (rw,nosuid,nodev,noexec,relatime,devices)  
cgroup auf /sys/fs/cgroup/freezer Typ cgroup (rw,nosuid,nodev,noexec,relatime,freezer)  
cgroup auf /sys/fs/cgroup/cpuset Typ cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)  
cgroup auf /sys/fs/cgroup/cpu,cpuacct Typ cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)  
cgroup auf /sys/fs/cgroup/net_cls Typ cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)  
cgroup auf /sys/fs/cgroup/blkio Typ cgroup (rw,nosuid,nodev,noexec,relatime,blkio)  
cgroup auf /sys/fs/cgroup/memory Typ cgroup (rw,nosuid,nodev,noexec,relatime,memory)  
configfs auf /sys/kernel/config Typ configfs (rw,relatime)  
/dev/mapper/centos-root auf / Typ xfs (rw,relatime,seclabel,attr2,inode64,noquota)  
selinuxfs auf /sys/fs/selinux Typ selinuxfs (rw,relatime)  
systemd-1 auf /proc/sys/fs/binfmt_misc Typ autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)  
mqueue auf /dev/mqueue Typ mqueue (rw,relatime,seclabel)  
debugfs auf /sys/kernel/debug Typ debugfs (rw,relatime)  
hugetlbfs auf /dev/hugepages Typ hugetlbfs (rw,relatime,seclabel)  
sunrpc auf /var/lib/nfs/rpc_pipefs Typ rpc_pipefs (rw,relatime)  
nfsd auf /proc/fs/nfsd Typ nfsd (rw,relatime)  
/dev/sda1 auf /boot Typ xfs (rw,relatime,seclabel,attr2,inode64,noquota)  
tmpfs auf /run/user/0 Typ tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)  
192.168.1.100:/home auf /mnt/nfs/home Typ nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)  
192.168.1.100:/var/nfs auf /mnt/nfs/var/nfs Typ nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

6 Testen

Auf dem Client können Sie jetzt versuchen, Testdateien auf den NFS-Shares zu erstellen:

client:

touch /mnt/nfs/home/test.txt  
touch /mnt/nfs/var/nfs/test.txt

Gehen Sie jetzt zum Server und überprüfen Sie, ob Sie beide Testdateien sehen können:

server:

ls -l /home/
[root@server1 ~]# ls -l /home/  
total 0  
drwx------. 2 administrator administrator 59 Jun 21 16:13 administrator  
-rw-r--r--. 1 root root 0 Jun 29 13:07 test.txt
ls -l /var/nfs
[root@server1 ~]# ls -l /var/nfs  
total 0  
-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 29 13:07 test.txt

(Bitte beachten Sie die unterschiedlichen Eigentümer der Testdateien: Der /home NFS-Share wird als root zugegriffen, daher gehört /home/test.txt root; der /var/nfs-Share wird als nobody/65534 zugegriffen, daher gehört /var/nfs/test.txt 65534.)

7 NFS-Shares beim Booten einhängen

Anstatt die NFS-Shares manuell auf dem Client einzuhängen, könnten Sie /etc/fstab ändern, damit die NFS-Shares automatisch beim Booten des Clients eingehängt werden.

client:

Öffnen Sie /etc/fstab und fügen Sie die folgenden Zeilen hinzu:

nano /etc/fstab
[...]  
192.168.1.100:/home  /mnt/nfs/home   nfs      rw,sync,hard,intr  0     0  
192.168.1.100:/var/nfs  /mnt/nfs/var/nfs   nfs      rw,sync,hard,intr  0     0

Anstelle von rw,sync,hard,intr können Sie andere Einhängeoptionen verwenden. Um mehr über verfügbare Optionen zu erfahren, schauen Sie sich an

man nfs

Um zu testen, ob Ihre geänderte /etc/fstab funktioniert, starten Sie den Client neu:

reboot

Nach dem Neustart sollten Sie die beiden NFS-Shares in den Ausgaben von

df -h

finden.

[root@client ~]# df -h  
Dateisystem Größe Benutzt Verfügbar Benutzt% Eingehängt in  
/dev/mapper/centos-root 28G 1.7G 26G 7% /  
devtmpfs 909M 0 909M 0% /dev  
tmpfs 919M 0 919M 0% /dev/shm  
tmpfs 919M 8.6M 910M 1% /run  
tmpfs 919M 0 919M 0% /sys/fs/cgroup  
/dev/sda1 497M 208M 290M 42% /boot  
tmpfs 184M 0 184M 0% /run/user/0  
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home  
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

und

mount
[root@client ~]# mount  
sysfs auf /sys Typ sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)  
proc auf /proc Typ proc (rw,nosuid,nodev,noexec,relatime)  
devtmpfs auf /dev Typ devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)  
securityfs auf /sys/kernel/security Typ securityfs (rw,nosuid,nodev,noexec,relatime)  
tmpfs auf /dev/shm Typ tmpfs (rw,nosuid,nodev,seclabel)  
devpts auf /dev/pts Typ devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)  
tmpfs auf /run Typ tmpfs (rw,nosuid,nodev,seclabel,mode=755)  
tmpfs auf /sys/fs/cgroup Typ tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)  
cgroup auf /sys/fs/cgroup/systemd Typ cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)  
pstore auf /sys/fs/pstore Typ pstore (rw,nosuid,nodev,noexec,relatime)  
cgroup auf /sys/fs/cgroup/perf_event Typ cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)  
cgroup auf /sys/fs/cgroup/hugetlb Typ cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)  
cgroup auf /sys/fs/cgroup/devices Typ cgroup (rw,nosuid,nodev,noexec,relatime,devices)  
cgroup auf /sys/fs/cgroup/freezer Typ cgroup (rw,nosuid,nodev,noexec,relatime,freezer)  
cgroup auf /sys/fs/cgroup/cpuset Typ cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)  
cgroup auf /sys/fs/cgroup/cpu,cpuacct Typ cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)  
cgroup auf /sys/fs/cgroup/net_cls Typ cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)  
cgroup auf /sys/fs/cgroup/blkio Typ cgroup (rw,nosuid,nodev,noexec,relatime,blkio)  
cgroup auf /sys/fs/cgroup/memory Typ cgroup (rw,nosuid,nodev,noexec,relatime,memory)  
configfs auf /sys/kernel/config Typ configfs (rw,relatime)  
/dev/mapper/centos-root auf / Typ xfs (rw,relatime,seclabel,attr2,inode64,noquota)  
selinuxfs auf /sys/fs/selinux Typ selinuxfs (rw,relatime)  
systemd-1 auf /proc/sys/fs/binfmt_misc Typ autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)  
mqueue auf /dev/mqueue Typ mqueue (rw,relatime,seclabel)  
debugfs auf /sys/kernel/debug Typ debugfs (rw,relatime)  
hugetlbfs auf /dev/hugepages Typ hugetlbfs (rw,relatime,seclabel)  
sunrpc auf /var/lib/nfs/rpc_pipefs Typ rpc_pipefs (rw,relatime)  
nfsd auf /proc/fs/nfsd Typ nfsd (rw,relatime)  
/dev/sda1 auf /boot Typ xfs (rw,relatime,seclabel,attr2,inode64,noquota)  
tmpfs auf /run/user/0 Typ tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)  
192.168.1.100:/home auf /mnt/nfs/home Typ nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)  
192.168.1.100:/var/nfs auf /mnt/nfs/var/nfs Typ nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

8 Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.