Debian : Installer un serveur NFS
Table des matières
Le système de fichiers en réseau (NFS pour Network File System) est un protocole de partage de fichiers qui permet à plusieurs ordinateurs de partager des fichiers et des répertoires sur un réseau. C'est principalement utilisé avec des systèmes UNIX et Linux, mais on peut le rencontrer parfois dans le monde Windows.
En utilisant NFS, les utilisateurs peuvent accéder aux fichiers et aux répertoires stockés sur un serveur distant comme s'ils étaient stockés localement sur leur propre ordinateur.
On parlera d'un serveur NFS pour le serveur qui héberge les fichiers et de client NFS pour l'ordinateur qui accède aux fichiers stockés sur le serveur.
NFS n'a pas les mêmes objectifs que SMB (Samba) pour le partage de fichiers, il n'a donc pas de gestion de droits similaires.
Ici, on va détailler l'installation d'un serveur NFS sous Debian et montrer comment connecter un client à ce partage.
L'installation se fait via le paquet :
Si on a un nom de domaine, on peut éditer le fichier idmapd.conf
Et on active et démarre le service nfs :
La configuration des partages sur le serveur se fait dans le fichier /etc/exports.
Plus d'informations dans cet article dédié : https://www.linuxtricks.fr/wiki/nfs-parametrer-les-partages-avec-le-fichier-exports
Pour la partie cliente, on installe aussi les paquets adéquats :
Et pour monter le partage, rien de plus simple :
Avec la commande df, on peut voir que tout est monté :
On peut aussi monter ça dans le fstab, mais attention, si le serveur NFS n'est pas dispo, le boot peut venir en échec (option nofail utile dans ce cas, mais montage à réaliser manuellement) :
Au travail, j'utilise un partage NFS pour étendre du stockage pour un coût peu élevé.
Mais le système se comporte bizarrement lorsque le partage NFS est indisponible (reboot du NAS, perte temporaire de réseau).
Pour cela, on peut monter le partage NFS avec les options soft, retrans et timeo. Je choisis 2 retransmissions en cas d'échec et 5 dixièmes de secondes (500 ms) de timeout (le NAS et le serveur sont dans le même sous-réseau, sur le même switch)
Ou dans /etc/fstab :
Au lieu de faire un montage dans le fichier /etc/fstab, et d'accéder à ce dossier, il est possible d'accéder graphiquement au serveur NFS directement depuis le gestionnaire de fichiers.
Nautilus (GNOME), Nemo (Cinnamon), Thunar (Xfce), Caja (MATE) utilisent gvfs.
Il suffit simplement dans la barre d'adresse de saisir l'adresse sous la forme :
Exemple :
Sur Debian, gvfs semble ne pas vouloir se connecter avec l'erreur suivante dans les logs :
Il suffit en root de donner la possibilité à gvfs d'utiliser les ports inférieurs à 1024 :
Introduction
Le système de fichiers en réseau (NFS pour Network File System) est un protocole de partage de fichiers qui permet à plusieurs ordinateurs de partager des fichiers et des répertoires sur un réseau. C'est principalement utilisé avec des systèmes UNIX et Linux, mais on peut le rencontrer parfois dans le monde Windows.
En utilisant NFS, les utilisateurs peuvent accéder aux fichiers et aux répertoires stockés sur un serveur distant comme s'ils étaient stockés localement sur leur propre ordinateur.
On parlera d'un serveur NFS pour le serveur qui héberge les fichiers et de client NFS pour l'ordinateur qui accède aux fichiers stockés sur le serveur.
NFS n'a pas les mêmes objectifs que SMB (Samba) pour le partage de fichiers, il n'a donc pas de gestion de droits similaires.
Ici, on va détailler l'installation d'un serveur NFS sous Debian et montrer comment connecter un client à ce partage.
Installation
L'installation se fait via le paquet :
Code BASH :
apt install nfs-kernel-server
Si on a un nom de domaine, on peut éditer le fichier idmapd.conf
Code BASH :
vi /etc/idmapd.conf
Code BASH :
Domain = linuxtricks.lan
Et on active et démarre le service nfs :
Code BASH :
systemctl enable --now nfs-server.service
Configuration
La configuration des partages sur le serveur se fait dans le fichier /etc/exports.
Plus d'informations dans cet article dédié : https://www.linuxtricks.fr/wiki/nfs-parametrer-les-partages-avec-le-fichier-exports
Partie client
Pour la partie cliente, on installe aussi les paquets adéquats :
Code BASH :
apt install nfs-common
Et pour monter le partage, rien de plus simple :
Code BASH :
mkdir -p /media/nfs mount -t nfs 192.168.21.200:/media/partage /media/nfs
Avec la commande df, on peut voir que tout est monté :
Code BASH :
df -h Filesystem Size Used Avail Use% Mounted on 192.168.21.200:/media/partage 20G 985M 18G 5% /media/nfs
On peut aussi monter ça dans le fstab, mais attention, si le serveur NFS n'est pas dispo, le boot peut venir en échec (option nofail utile dans ce cas, mais montage à réaliser manuellement) :
Code BASH :
192.168.21.200:/media/partage /media/nfs nfs auto,_netdev,nofail 0 0
Quelques options de montage utiles
Au travail, j'utilise un partage NFS pour étendre du stockage pour un coût peu élevé.
Mais le système se comporte bizarrement lorsque le partage NFS est indisponible (reboot du NAS, perte temporaire de réseau).
Pour cela, on peut monter le partage NFS avec les options soft, retrans et timeo. Je choisis 2 retransmissions en cas d'échec et 5 dixièmes de secondes (500 ms) de timeout (le NAS et le serveur sont dans le même sous-réseau, sur le même switch)
Code BASH :
mount -t nfs4 192.168.21.200:/media/partage /media/nfs -o soft,retrans=2,timeo=5
Ou dans /etc/fstab :
Code BASH :
192.168.21.200:/media/partage /media/nfs nfs auto,_netdev,nofail,soft,retrans=2,timeo=5 0 0
Accès en graphique
Au lieu de faire un montage dans le fichier /etc/fstab, et d'accéder à ce dossier, il est possible d'accéder graphiquement au serveur NFS directement depuis le gestionnaire de fichiers.
Nautilus (GNOME), Nemo (Cinnamon), Thunar (Xfce), Caja (MATE) utilisent gvfs.
Il suffit simplement dans la barre d'adresse de saisir l'adresse sous la forme :
Code TEXT :
nfs://ip_ou_nom_du_serveur/point_de_montage
Exemple :
Code TEXT :
nfs://192.168.21.200/media/partage
Sur Debian, gvfs semble ne pas vouloir se connecter avec l'erreur suivante dans les logs :
Code TEXT :
rpc.mountd[2504]: refused mount request from 192.168.21.100 for /srv/nfs (/srv/nfs): illegal port 43782
Il suffit en root de donner la possibilité à gvfs d'utiliser les ports inférieurs à 1024 :
Code BASH :
setcap 'cap_net_bind_service=+ep' /usr/libexec/gvfsd-nfs