NFS Server · 4 min read · Dec 06, 2025
Einrichten eines NFS-Servers und -Clients unter CentOS 6.3
Diese Anleitung erklärt, wie man einen NFS-Server und einen NFS-Client unter CentOS 6.3 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.
1 Vorbemerkung
Ich verwende hier zwei CentOS-Systeme:
- NFS-Server: server.example.com, IP-Adresse: 192.168.0.100
- NFS-Client: client.example.com, IP-Adresse: 192.168.0.101
2 Installation von NFS
server:
Auf dem NFS-Server führen wir aus:
yum install nfs-utils nfs-utils-libDann erstellen wir die Systemstartlinks für den NFS-Server und starten ihn:
chkconfig --levels 235 nfs on
/etc/init.d/nfs startclient:
Auf dem Client können wir NFS wie folgt installieren (das ist tatsächlich dasselbe wie auf dem Server):
yum install nfs-utils nfs-utils-lib3 Exportieren von Verzeichnissen auf dem Server
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 nobody. In der Regel gehört das Verzeichnis /home nicht nobody (und ich empfehle nicht, dessen Eigentum auf nobody zu ändern!), und da wir auf /home lesen und schreiben möchten, sagen wir NFS, dass Zugriffe als root erfolgen sollen (wenn unser /home-Share nur lesbar wäre, wäre dies nicht notwendig). Das Verzeichnis /var/nfs existiert nicht, also können wir es erstellen und dessen Eigentum ändern; in meinen Tests hatten der Benutzer und die Gruppe nobody beide die ID 99 auf beiden meinen CentOS-Testsystemen (Server und Client); als ich versuchte, von dem NFS-Client auf /var/nfs zu schreiben, erhielt ich einen Fehler “Zugriff verweigert”, also habe ich chmod 777 /var/nfs ausgeführt, damit jeder in dieses Verzeichnis schreiben konnte; das Schreiben in /var/nfs vom Client funktionierte dann, und auf dem Client schienen die in /var/nfs geschriebenen Dateien dem Benutzer und der Gruppe nobody zu gehören, aber auf dem Server gehörten sie dem (nicht existierenden) Benutzer und der Gruppe mit der ID 65534; also änderte ich das Eigentum von /var/nfs auf den Benutzer/Gruppe 65534 auf dem Server und änderte die Berechtigungen von /var/nfs zurück auf 755, und voilà, der Client durfte in /var/nfs schreiben:
mkdir /var/nfs
chown 65534:65534 /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 sagen NFS, dass Zugriffe auf /home als root erfolgen sollen (um mehr über /etc/exports, sein Format und verfügbare Optionen zu erfahren, schauen Sie sich
man 5 exportsan)
vi /etc/exports| /home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.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 danach
exportfs -aausführen, um die Änderungen wirksam zu machen.
4 Einbinden der NFS-Shares auf dem Client
client:
Zuerst erstellen wir die Verzeichnisse, in denen wir die NFS-Shares einbinden möchten, z.B.:
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfsAnschließend können wir sie wie folgt einbinden:
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.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
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_server2-LogVol00
9.7G 1.7G 7.5G 18% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 504M 39M 440M 9% /boot
192.168.0.100:/home 9.7G 1.7G 7.5G 19% /mnt/nfs/home
192.168.0.100:/var/nfs
9.7G 1.7G 7.5G 19% /mnt/nfs/var/nfs
[root@client ~]#und
mount[root@client ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[root@client ~]#5 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@server ~]# ls -l /home/
total 0
-rw-r--r-- 1 root root 0 Dec 11 16:58 test.txt
[root@server ~]#ls -l /var/nfs[root@server ~]# ls -l /var/nfs
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 11 16:58 test.txt
[root@server ~]#(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.)
6 Einbinden von NFS-Shares beim Booten
Anstatt die NFS-Shares manuell auf dem Client einzubinden, könnten Sie /etc/fstab ändern, damit die NFS-Shares automatisch eingebunden werden, wenn der Client bootet.
client:
Öffnen Sie /etc/fstab und fügen Sie die folgenden Zeilen hinzu:
vi /etc/fstab| [...] 192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |
Anstelle von rw,sync,hard,intr können Sie verschiedene Einbindungsoptionen verwenden. Um mehr über verfügbare Optionen zu erfahren, schauen Sie sich
man nfsan.
Um zu testen, ob Ihre modifizierte /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
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_server2-LogVol00
9.7G 1.7G 7.5G 18% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 504M 39M 440M 9% /boot
192.168.0.100:/home 9.7G 1.7G 7.5G 19% /mnt/nfs/home
192.168.0.100:/var/nfs
9.7G 1.7G 7.5G 19% /mnt/nfs/var/nfs
[root@client ~]#und
mount[root@client ~]# mount
/dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
[root@client ~]#7 Links
- Linux NFS: http://nfs.sourceforge.net/
- CentOS: http://www.centos.org/
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.