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 nano2 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 firewalldStarten 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 --reload3 NFS installieren
server:
Auf dem NFS-Server führen wir aus:
yum -y install nfs-utilsAktivieren und starten Sie dann den NFS-Serverdienst.
systemctl enable nfs-server.service
systemctl start nfs-server.serviceclient:
Auf dem Client können wir NFS wie folgt installieren (das ist tatsächlich dasselbe wie auf dem Server):
yum install nfs-utils4 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/nfsJetzt 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 -aum 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/nfsDanach 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/nfsSie sollten jetzt die beiden NFS-Shares in den Ausgaben von
df -hsehen 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/nfsund
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.txtGehen 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.txtls -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 0Anstelle 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 nfsUm zu testen, ob Ihre geänderte /etc/fstab funktioniert, starten Sie den Client neu:
rebootNach dem Neustart sollten Sie die beiden NFS-Shares in den Ausgaben von
df -hfinden.
[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/nfsund
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
- Linux NFS: http://nfs.sourceforge.net/
- CentOS: http://www.centos.org/
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.