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-commonDann 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-common3 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/client1Das 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/wwwJetzt 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 restart4 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/wwwWenn 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/wwwAnschließ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/wwwSie 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.txtGehen 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 0Anstelle 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 nfsUm 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 -aSie 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
- Linux NFS: http://nfs.sourceforge.net/
- Debian: http://www.debian.org/
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.