Problém
Připojení sdílené složky nfs ze serveru CentOS/RHEL NFS na klienta NFS způsobí chybu, jak je uvedeno níže:
# mount -t nfs x.x.x.x:/share /mnt mount.nfs: access denied by server while mounting x.x.x.x:/share
Můžete zkusit spustit příkaz mount s podrobnou možností, abyste získali podrobnou chybu o problému.
# 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
Řešení
Toto je obecný problém s připojením NFS na klienta a může se vyskytnout v důsledku mnoha problémů. Níže jsou uvedeny některé z nejčastěji se vyskytujících problémů.
1. Zkuste připojení pomocí NFSv3
Někdy může server NFS podporovat pouze připojení NFSv3. Ve výchozím nastavení používá příkaz mount NFSv4, což může způsobit chybu. Chcete-li se tomu vyhnout, zadejte při připojování sdílené složky NFSv3.
# mount -t nfs -o nfsvers=3 x.x.x.x:/share /mnt
2. Zkontrolujte /etc/exports pro správné možnosti sdílení
Ujistěte se, že /etc/exports správně odkazuje na správné informace o klientovi NFS pro poskytování přístupu. Některé servery NFS vyžadují, aby bylo jméno klienta NFS přeložitelné na IP, takže by mělo být rozlišitelné přes DNS nebo specifikované v /etc/hosts serveru NFS. Formát /etc/exports soubor je:
dir client1 (options) [client2(options)...]
Mezi možnosti klienta patří (výchozí jsou uvedeny jako první):
ro / rw :
a) ro :povolit klientům přístup ke sdílené složce pouze pro čtení.
b) rw :povolit klientům přístup ke sdílené složce pro čtení a zápis.
sync / async :
a) synchronizace :NFS server odpoví na požadavek pouze po zapsání změn provedených předchozím požadavkem na disk.
b) async :určuje, že server nemusí čekat.
wdelay / no_wdelay
a) wdelay :NFS server zpožďuje potvrzení požadavků na zápis, když má podezření, že se blíží další požadavek na zápis.
b) no_wdelay :použijte tuto volbu k deaktivaci zpoždění. možnost no_wdelay lze povolit pouze při výchozí synchronizaci možnost je povolena.
no_all_squash / all_squash :
a) no_all_squash :nemění mapování vzdálených uživatelů.
b) all_squash :zmáčkne všechny vzdálené uživatele včetně roota.
root_squash / no_root_squash :
a) root_squash :zabrání uživatelům root připojeným vzdáleně v přístupu root. Efektivní squashování vzdálených práv roota.
b) no_root_squash :deaktivace squashování rootu.
Příklad :
# vi /etc/exports /test nfs_client(rw)
3. Zkontrolujte oprávnění serveru NFS
– Může nastat problém se sdílením sdílené složky NFS serverem NFS. Zkuste připojit problematickou sdílenou složku na jiného klienta NFS, abyste vyloučili možnost problému na serveru NFS.
– Nastavte oprávnění jako (ro,no_root_squash,sync) pro export nfs na konci serveru a spusťte příkaz:
# exportfs -r
Potom zkuste připojit sdílený adresář NFS. Pokud zadáte klienta NFS v /etc/exports podle domény nebo názvu hostitele, zajistěte, aby se název domény mapoval na správnou IP, nesprávná položka v /etc/hosts může například způsobit odepření přístupu.
4. Pomocí tcpdump
Ve velmi vzácných případech možná budete muset použít tcpdump k zachycení tcpdump operace připojení. Nejprve spusťte níže uvedený příkaz a začněte zachycovat síťové pakety. V jiném terminálu spusťte operaci připojení NFS.
# tcpdump -s0 -i [eth#] host [nfs_server_ip] -w /tmp/tcpdump.pcapOdstraňování běžných problémů s NFS v Linuxu
CentOS / RHEL 7 :Konfigurace serveru NFS a klienta NFS