Problema
Il montaggio della condivisione nfs dal server NFS CentOS/RHEL su un client NFS genera un errore come mostrato di seguito:
# mount -t nfs x.x.x.x:/share /mnt mount.nfs: access denied by server while mounting x.x.x.x:/share
Puoi provare a eseguire il comando mount con l'opzione dettagliata per ottenere un errore dettagliato sul problema.
# 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
Soluzione
Questo è un problema generico con il montaggio NFS sul client e può verificarsi a causa di molti problemi. Di seguito sono riportati alcuni dei problemi più comuni.
1. Prova a montare con NFSv3
A volte il server NFS può supportare solo connessioni NFSv3. Per impostazione predefinita, il comando mount utilizza NFSv4, che potrebbe risultare l'errore. Per evitare ciò, specifica NFSv3 durante il montaggio della condivisione.
# mount -t nfs -o nfsvers=3 x.x.x.x:/share /mnt
2. Controlla /etc/exports per le opzioni di condivisione corrette
Assicurarsi che /etc/exports si riferisca correttamente alle informazioni del client NFS corrette per fornire l'accesso. Alcuni server NFS richiedono che il nome del client NFS sia risolvibile in IP, quindi dovrebbe essere risolvibile tramite DNS o specificato in /etc/hosts del server NFS.. Il formato di /etc/exports il file è:
dir client1 (options) [client2(options)...]
Le opzioni client includono (le impostazioni predefinite sono elencate per prime):
ro / rw :
a) ro :consente ai client l'accesso in sola lettura alla condivisione.
b) rw :consente ai client l'accesso in lettura e scrittura alla condivisione.
sync / async :
a) sync :il server NFS risponde alla richiesta solo dopo che le modifiche apportate dalla richiesta precedente sono state scritte su disco.
b) async :specifica che il server non deve attendere.
wdelay / no_wdelay
a) wdelay :il server NFS ritarda il commit delle richieste di scrittura quando sospetta che un'altra richiesta di scrittura sia imminente.
b) no_wdelay :usa questa opzione per disabilitare il ritardo. L'opzione no_wdelay può essere abilitata solo se l'impostazione predefinita è sync l'opzione è abilitata.
no_all_squash / all_squash :
a) no_all_squash :non cambia la mappatura degli utenti remoti.
b) all_squash :per schiacciare tutti gli utenti remoti incluso root.
root_squash / no_root_squash :
a) root_squash :impedisce agli utenti root connessi in remoto di avere accesso come root. Eliminare efficacemente i privilegi di root remoti.
b) no_root_squash :disabilita lo schiacciamento di root.
Esempio :
# vi /etc/exports /test nfs_client(rw)
3. Verifica i permessi del server NFS
– Potrebbe esserci un problema con il server NFS che condivide la condivisione NFS. Prova a montare la condivisione problematica su un altro client NFS, per escludere la possibilità di problemi sul server NFS.
– Imposta l'autorizzazione su (ro,no_root_squash,sync) per l'esportazione nfs sul lato server ed esegui il comando:
# exportfs -r
Quindi prova a montare la directory di condivisione NFS. Se si specifica il client NFS in /etc/exports per dominio o nome host, assicurarsi che il nome di dominio corrisponda all'IP corretto, una voce errata in /etc/hosts ad esempio potrebbe impedire l'accesso.
4. Utilizzo di tcpdump
In casi molto rari, potrebbe essere necessario utilizzare tcpdump per acquisire tcpdump dell'operazione di montaggio. Esegui prima il comando seguente per iniziare a catturare i pacchetti di rete. In un altro terminale avvia l'operazione di montaggio NFS.
# tcpdump -s0 -i [eth#] host [nfs_server_ip] -w /tmp/tcpdump.pcapRisoluzione dei problemi comuni di NFS in Linux
CentOS / RHEL 7:configurazione di un server NFS e un client NFS