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 updateapt-get upgradeEnsuite, 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-commonEnsuite, 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-common3 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/client1Le 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/wwwMaintenant, 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 restart4 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/wwwSi 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/wwwEnsuite, 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/wwwVous devriez maintenant voir les deux partages NFS dans les sorties de
df -hroot@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
mountroot@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.txtMaintenant, 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/wwwroot@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 0Au 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 nfsPour 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 -aVous devriez maintenant voir les deux partages NFS dans les sorties de
df -hroot@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
mountroot@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
- Linux NFS : http://nfs.sourceforge.net/
- Debian : http://www.debian.org/
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.