Problème
Le montage du partage nfs à partir du serveur CentOS/RHEL NFS sur un client NFS génère une erreur comme indiqué ci-dessous :
# mount -t nfs x.x.x.x:/share /mnt mount.nfs: access denied by server while mounting x.x.x.x:/share
Vous pouvez essayer d'exécuter la commande mount avec l'option détaillée pour obtenir une erreur détaillée sur le problème.
# mount -t nfs -vvvv server.example.com:/share /mnt mount.nfs: timeout set for Fri Mar 9 17:56:57 2018 mount.nfs: trying text-based options 'vers=4.1,addr=x.x.x.x,clientaddr=x.x.x.x' mount.nfs: mount(2): Protocol not supported mount.nfs: trying text-based options 'vers=4.0,addr=x.x.x.x,clientaddr=x.x.x.x' mount.nfs: mount(2): Protocol not supported mount.nfs: trying text-based options 'addr=x.x.x.x' mount.nfs: prog 100003, trying vers=3, prot=6 mount.nfs: trying x.x.x.x prog 100003 vers 3 prot TCP port 2049 mount.nfs: prog 100005, trying vers=3, prot=17 mount.nfs: trying x.x.x.x prog 100005 vers 3 prot UDP port 300 mount.nfs: mount(2): Permission denied mount.nfs: access denied by server while mounting server.example.com:/share
Solution
Il s'agit d'un problème générique avec le montage NFS sur le client et peut survenir en raison de nombreux problèmes. Vous trouverez ci-dessous certains des problèmes les plus courants.
1. Essayez de monter avec NFSv3
Parfois, le serveur NFS ne prend en charge que les connexions NFSv3. Par défaut, la commande de montage utilise NFSv4, ce qui peut entraîner l'erreur. Pour éviter cela, spécifiez le NFSv3 lors du montage du partage.
# mount -t nfs -o nfsvers=3 x.x.x.x:/share /mnt
2. Vérifiez /etc/exports pour les options de partage correctes
Assurez-vous que /etc/exports fait correctement référence aux informations correctes du client NFS pour fournir l'accès. Certains serveurs NFS exigent que le nom du client NFS puisse être résolu en IP, il doit donc être résolu via DNS ou spécifié dans /etc/hosts du serveur NFS. Le format de /etc/exports le fichier est :
dir client1 (options) [client2(options)...]
Les options client incluent (les valeurs par défaut sont répertoriées en premier) :
ro / rw :
a) ro :autorise les clients à accéder en lecture seule au partage.
b) rw :autorise les clients à accéder en lecture et en écriture au partage.
sync / async :
a) sync :le serveur NFS répond à la requête uniquement après que les modifications apportées par la requête précédente ont été écrites sur le disque.
b) async :spécifie que le serveur n'a pas à attendre.
>wdelay / no_wdelay
a) wdelay :le serveur NFS retarde la validation des requêtes d'écriture lorsqu'il soupçonne qu'une autre requête d'écriture est imminente.
b) no_wdelay :utilisez cette option pour désactiver le délai. L'option no_wdelay ne peut être activée que si la synchronisation par défaut l'option est activée.
no_all_squash / all_squash :
a) no_all_squash :ne modifie pas le mappage des utilisateurs distants.
b) all_squash :pour écraser tous les utilisateurs distants, y compris root.
root_squash / no_root_squash :
a) root_squash :empêche les utilisateurs root connectés à distance d'avoir un accès root. Écrase efficacement les privilèges root distants.
b) no_root_squash :désactive l'écrasement root.
Exemple :
# vi /etc/exports /test nfs_client(rw)
3. Vérifier les autorisations du serveur NFS
– Il pourrait y avoir un problème avec le serveur NFS partageant le partage NFS. Essayez de monter le partage problématique sur un autre client NFS, pour exclure la possibilité d'un problème sur le serveur NFS.
– Définissez l'autorisation sur (ro,no_root_squash,sync) pour l'exportation nfs à la fin du serveur et exécutez la commande :
# exportfs -r
Essayez ensuite de monter le répertoire de partage NFS. Si vous spécifiez le client NFS dans /etc/exports par domaine ou nom d'hôte, assurez-vous que le nom de domaine correspond à la bonne adresse IP, une entrée incorrecte dans /etc/hosts par exemple, pourrait entraîner un refus d'accès.
4. Utilisation de tcpdump
Dans de très rares cas, vous devrez peut-être utiliser le tcpdump pour capturer le tcpdump de l'opération de montage. Exécutez d'abord la commande ci-dessous pour commencer à capturer les paquets réseau. Dans un autre terminal, démarrez l'opération de montage NFS.
# tcpdump -s0 -i [eth#] host [nfs_server_ip] -w /tmp/tcpdump.pcapDépannage des problèmes NFS courants sous Linux
CentOS / RHEL 7 :Configuration d'un serveur NFS et d'un client NFS