NFS Server · 4 min read · Dec 26, 2025

Einrichten eines NFS-Servers und -Clients auf Debian Wheezy

Dieser Leitfaden erklärt, wie man einen NFS-Server und einen NFS-Client auf Debian Wheezy einrichtet. NFS steht für Network File System; über NFS kann ein Client auf ein freigegebenes Verzeichnis auf einem NFS-Server zugreifen (lesen, schreiben), als ob es sich auf der lokalen Festplatte befände. In diesem Tutorial zeige ich Ihnen zwei verschiedene NFS-Exporte, den Export eines Client-Verzeichnisses, das Dateien als Benutzer nobody/nogroup speichert, ohne die Dateisystemberechtigungen zu erhalten, und einen Export des Verzeichnisses /var/www, das die Berechtigungen und den Besitz von Dateien beibehält, wie es bei einer Hosting-Server-Konfiguration erforderlich ist.

1 Vorbemerkung

Ich verwende hier zwei Debian Wheezy-Systeme:

  • NFS-Server: server.example.com, IP-Adresse: 192.168.0.100
  • NFS-Client: client.example.com, IP-Adresse: 192.168.0.101

2 NFS installieren

server:

Auf dem NFS-Server führen wir aus:

apt-get install nfs-kernel-server nfs-common

Dann erstellen wir die Systemstartlinks für den NFS-Server und starten ihn:

client:

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

apt-get install nfs-common

3 Verzeichnisse auf dem Server exportieren

server:

Ich möchte die Verzeichnisse /home/client1 und /var/www für den Client zugänglich machen, um die beiden verschiedenen Zugriffsmodi des NFS-Servers zu zeigen. Das Verzeichnis /home/client1 wird im Standardmodus freigegeben, sodass alle in dieses Verzeichnis geschriebenen Dateien als Benutzer nobody und Gruppe nogroup gespeichert werden. Für das Verzeichnis /var/www verwende ich die Option no_root_squash, die den NFS-Server anweist, die Berechtigungen und den Besitz der Dateien beizubehalten. Dies ist z.B. erforderlich, wenn Sie das Verzeichnis /var/www eines Webservers exportieren möchten, der mit ISPConfig 3 verwaltet wird.

Zuerst erstelle ich das Verzeichnis /home/client1

mkdir /home/client1  
chown nobody:nogroup /home/client1  
chmod 755 /home/client1

Das Verzeichnis /var/www existiert höchstwahrscheinlich bereits auf Ihrem Server. Wenn nicht, erstellen Sie es:

mkdir /var/www  
chown root:root /var/www  
chmod 755 /var/www

Jetzt müssen wir /etc/exports bearbeiten, wo wir unsere NFS-Freigaben “exportieren”. Wir geben /home/client1 und /var/www als NFS-Freigaben an und sagen NFS, dass Zugriffe auf /home/client1 als Benutzer nobody erfolgen sollen (um mehr über /etc/exports, sein Format und verfügbare Optionen zu erfahren, werfen Sie einen Blick auf

man 5 exports

)

vi /etc/exports
/home/client1           192.168.0.101(rw,sync,no_subtree_check)
/var/www        192.168.0.101(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash)

(Die Option no_root_squash bewirkt, dass /var/www als root zugegriffen wird.)

Um die Änderungen in /etc/exports anzuwenden, starten wir den Kernel-NFS-Server neu

/etc/init.d/nfs-kernel-server restart

4 NFS-Freigaben auf dem Client einhängen

client:

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

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

Wenn das Verzeichnis /var/www bereits auf Ihrem Server existiert, stoppen Sie Apache, benennen Sie das Verzeichnis um und erstellen Sie ein neues leeres Verzeichnis als Einhängepunkt

/etc/init.d/apache2 stop  
mv /var/www /var/www_bak  
mkdir -p /var/www

Anschließend können wir sie wie folgt einhängen:

mount 192.168.0.100:/home/client1 /mnt/nfs/home/client1  
mount 192.168.0.100:/var/www /var/www

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

df -h
[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/client1   9.7G  1.7G  7.5G  19% /mnt/nfs/home/client1  
192.168.0.100:/var/www  
                      9.7G  1.7G  7.5G  19% /var/www  
[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/client1 on /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
192.168.0.100:/var/www on /var/www 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-Freigaben zu erstellen:

client:

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

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

server:

ls -l /home/client1/
[root@server ~]# ls -l /home/client1  
total 0  
-rw-r--r-- 1 nobody nogroup 0 Feb 02 16:58 test.txt  
[root@server ~]#
ls -l /var/nfs
[root@server ~]# ls -l /var/www  
total 0  
-rw-r--r-- 1 root root 0 Feb 02 16:58 test.txt  
[root@server ~]#

(Bitte beachten Sie die unterschiedlichen Besitzverhältnisse der Testdateien: Die NFS-Freigabe /home/client1 wird als nobody/nogroup zugegriffen und gehört nobody/nogroup; die Freigabe /var/www wird als root zugegriffen, daher gehört /var/www/test.txt dem Benutzer und der Gruppe root.)

6 NFS-Freigaben beim Booten einhängen

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

client:

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

vi /etc/fstab
[...]  
192.168.0.100:/home/client1  /mnt/nfs/home/client1   nfs      rw,sync,hard,intr  0     0  
192.168.0.100:/var/www  /var/www   nfs      rw,sync,hard,intr  0     0

Anstelle von rw,sync,hard,intr können Sie verschiedene Einhängeoptionen verwenden. Um mehr über verfügbare Optionen zu erfahren, werfen Sie einen Blick auf

man nfs

Um zu testen, ob Ihre modifizierte /etc/fstab funktioniert, hängen Sie die Freigaben aus und führen Sie mount -a aus:

umount /mnt/nfs/home/client1  
umount /var/www  
mount -a

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

df -h
[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/client1   9.7G  1.7G  7.5G  19% /mnt/nfs/home/client1  
192.168.0.100:/var/www  
                      9.7G  1.7G  7.5G  19% /var/www  
[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/client1 on /mnt/nfs/home/client1 type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
192.168.0.100:/var/www on /var/www type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)  
[root@client ~]#

7 Danksagungen

Dieses Tutorial basiert auf dem Centos NFS Server Tutorial von Falko Timme.

8 Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.