NFS Configuration · 6 min read · Dec 26, 2025

Configuration d'un serveur et d'un client NFS sur Debian 9 (Stretch)

Ce guide explique comment configurer un serveur NFS et un client NFS sur Debian 9. NFS signifie Network File System ; grâce à NFS, un client peut accéder (lire, écrire) à un partage distant sur un serveur NFS comme s’il était sur le disque dur local. Dans ce tutoriel, je vais vous montrer deux exportations NFS différentes, l’exportation d’un répertoire client qui stocke des fichiers en tant qu’utilisateur nobody/nogroup sans préserver les permissions du système de fichiers et une exportation du répertoire /var/www qui préserve les permissions et la propriété des fichiers, comme requis dans une configuration de serveur d’hébergement.

1 Remarque préliminaire

J’utilise ici deux systèmes Debian Wheezy :

  • Serveur NFS : server.example.com, adresse IP : 192.168.1.100
  • Client NFS : client.example.com, adresse IP : 192.168.1.101

2 Installation de NFS

Assurez-vous que le serveur est à jour en mettant à jour les listes de paquets et en installant les mises à jour en attente sur les deux serveurs

apt-get update
apt-get upgrade

Ensuite, continuez avec l’installation du serveur et du client NFS.

serveur :

Sur le serveur NFS, nous exécutons :

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

Ensuite, nous créons les liens de démarrage système pour le serveur NFS et le démarrons :

client :

Sur le client, nous pouvons installer NFS comme suit (c’est en fait le même que sur le serveur) :

apt-get install nfs-common

3 Exportation de répertoires sur le serveur

serveur :

Je voudrais rendre les répertoires /home/client1 et /var/www accessibles au client pour montrer les deux modes d’accès différents du serveur NFS. Le répertoire /home/client1 est partagé en mode standard, donc tous les fichiers écrits dans ce répertoire sont stockés en tant qu’utilisateur nobody et groupe nogroup. Pour le répertoire /var/www, j’utilise l’option no_root_squash qui indique au serveur NFS de préserver les permissions et la propriété des fichiers. Ceci est par exemple requis lorsque vous souhaitez exporter le répertoire /var/www d’un serveur web géré avec ISPConfig 3.

Tout d’abord, je vais créer le répertoire /home/client1

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

Le répertoire /var/www existe probablement déjà sur votre serveur. Sinon, créez-le :

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

Maintenant, nous devons modifier /etc/exports où nous “exportons” nos partages NFS. Nous spécifions /home/client1 et /var/www comme partages NFS et disons à NFS de faire des accès à /home/client1 en tant qu’utilisateur nobody (pour en savoir plus sur /etc/exports, son format et les options disponibles, jetez un œil à

man 5 exports

)

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

(L’option no_root_squash fait que /var/www sera accessible en tant que root.)

Pour appliquer les modifications dans /etc/exports, nous redémarrons le serveur nfs du noyau

service nfs-kernel-server restart

4 Montage des partages NFS sur le client

client :

Tout d’abord, nous créons les répertoires où nous voulons monter les partages NFS, par exemple :

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

Si le répertoire /var/www existe déjà sur votre serveur, arrêtez apache, renommez le répertoire et créez un nouveau répertoire vide comme point de montage

service apache2 stop  
mv /var/www /var/www_bak  
mkdir -p /var/www

Ensuite, nous pouvons les monter comme suit :

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

Vous devriez maintenant voir les deux partages NFS dans les sorties de

df -h
root@server1:/tmp# df -h  
Filesystem Size Used Avail Use% Mounted on  
udev 990M 0 990M 0% /dev  
tmpfs 201M 6.0M 195M 3% /run  
/dev/sda1 28G 1.2G 25G 5% /  
tmpfs 1001M 0 1001M 0% /dev/shm  
tmpfs 5.0M 0 5.0M 0% /run/lock  
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup  
tmpfs 200M 0 200M 0% /run/user/1000  
192.168.1.100:/home/client1 28G 1.2G 25G 5% /mnt/nfs/home/client1  
192.168.1.100:/var/www 28G 1.2G 25G 5% /var/www  
root@server1:/tmp#

et

mount
root@server1:/tmp# mount  
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)  
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)  
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1012912k,nr_inodes=253228,mode=755)  
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)  
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204804k,mode=755)  
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)  
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)  
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)  
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)  
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)  
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)  
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)  
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)  
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)  
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)  
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)  
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)  
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)  
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)  
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)  
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9848)  
mqueue on /dev/mqueue type mqueue (rw,relatime)  
debugfs on /sys/kernel/debug type debugfs (rw,relatime)  
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)  
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204800k,mode=700,uid=1000,gid=1000)  
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)  
192.168.1.100:/home/client1 on /mnt/nfs/home/client1 type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)  
192.168.1.100:/var/www on /var/www type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)  
root@server1:/#

5 Test

Sur le client, vous pouvez maintenant essayer de créer des fichiers de test sur les partages NFS :

client :

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

Maintenant, allez sur le serveur et vérifiez si vous pouvez voir les deux fichiers de test :

serveur :

ls -l /home/client1/
root@server1:/tmp# ls -l /home/client1/  
total 0  
-rw-r--r-- 1 nobody nogroup 0 Nov 16 10:52 test.txt  
root@server1:/tmp#
ls -l /var/www
root@server1:/tmp# ls -l /var/www  
total 0  
-rw-r--r-- 1 root root 0 Nov 16 10:52 test.txt  
root@server1:/tmp#

(Veuillez noter les différentes propriétés des fichiers de test : le partage NFS /home/client1 est accessible en tant que nobody / nogroup et est possédé par nobody / nogroup ; le partage /var/www est accessible en tant que root, donc /var/www/test.txt est possédé par l’utilisateur et le groupe root.)

6 Montage des partages NFS au démarrage

Au lieu de monter les partages NFS manuellement sur le client, vous pourriez modifier /etc/fstab afin que les partages NFS soient montés automatiquement lorsque le client démarre.

client :

Ouvrez /etc/fstab et ajoutez les lignes suivantes :

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

Au lieu de rw,sync,hard,intr, vous pouvez utiliser différentes options de montage. Pour en savoir plus sur les options disponibles, jetez un œil à

man nfs

Pour tester si votre /etc/fstab modifié fonctionne, démontez les partages et exécutez mount -a :

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

Vous devriez maintenant voir les deux partages NFS dans les sorties de

df -h
root@server1:/# df -h  
Filesystem Size Used Avail Use% Mounted on  
udev 990M 0 990M 0% /dev  
tmpfs 201M 6.0M 195M 3% /run  
/dev/sda1 28G 1.2G 25G 5% /  
tmpfs 1001M 0 1001M 0% /dev/shm  
tmpfs 5.0M 0 5.0M 0% /run/lock  
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup  
tmpfs 200M 0 200M 0% /run/user/1000  
192.168.1.100:/home/client1 28G 1.2G 25G 5% /mnt/nfs/home/client1  
192.168.1.100:/var/www 28G 1.2G 25G 5% /var/www  
root@server1:/#

et

mount
root@server1:/# mount  
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)  
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)  
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1012912k,nr_inodes=253228,mode=755)  
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)  
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204804k,mode=755)  
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)  
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)  
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)  
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)  
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)  
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)  
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)  
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)  
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)  
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)  
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)  
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)  
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)  
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)  
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)  
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9848)  
mqueue on /dev/mqueue type mqueue (rw,relatime)  
debugfs on /sys/kernel/debug type debugfs (rw,relatime)  
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)  
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204800k,mode=700,uid=1000,gid=1000)  
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)  
192.168.1.100:/home/client1 on /mnt/nfs/home/client1 type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)  
192.168.1.100:/var/www on /var/www type nfs (rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.100,mountvers=3,mountport=57821,mountproto=udp,local_lock=none,addr=192.168.1.100)  
root@server1:/#

7 Crédits

Ce tutoriel est basé sur le tutoriel du serveur NFS Centos de Falko Timme.

8 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.