Не вдалося встановити NFS, відмовлено в дозволі, немає експорту


10

У мене проблема з монтажем частки NFS, яку я не можу вирішити, що викликає гайки. Це ситуація:

Задіяно три машини:
Хост A: мандрагора, IP 192.168.1.4, сервер NFS
Хост B: athlon64, IP 192.168.1.64, клієнт NFS
Хост C: lap-fzs-2, IP 192.168.1.27, клієнт NFS

Хост A має сервер NFS, який експортує каталог, який встановлюється хостом B. Це працює бездоганно і працює з віків. Ніяких проблем. Тепер хост C виходить на знімок. Ubuntu 12.04 LTS, сучасна система. Я намагався змонтувати ту саму частку від хоста A, але отримати дозвіл відхилено помилку:

root@lap-fzs-2:~# mount -t nfs mandrake:/data /data -onfsvers=2
mount.nfs: access denied by server while mounting mandrake:/data

Той факт, що він працює між хостами A і B, повинен підтверджувати, що експорт NFS сам по собі працює. Ось інформація, яку я можу дати, що змушує мене думати, що це має працювати. Можливо, хтось бачить те, чого я не знаю, і знає, чому це не вдається новому господареві C.

Експорт сервера:

[root@mandrake /root]# cat /etc/exports
/suse 192.168.1.0/16(ro,no_root_squash)
/data 192.168.1.0/24(rw)
#/data3 192.168.2.0/24(rw)
#/data 192.168.2.0/16(rw,all_squash,anonuid=500,anongid=500)
#/data3 192.168.2.0/16(rw,all_squash,anonuid=500,anongid=500)

[root@mandrake /root]# exportfs
/suse           192.168.1.0/16
/data           192.168.1.0/24

Портмейпер працює, експорт відомий і встановлений хостом B "athlon64".

[root@mandrake /root]# showmount -e
Export list for mandrake:
/data 192.168.1.0/24
/suse 192.168.1.0/16
[root@mandrake /root]# showmount -a
All mount points on mandrake:
atlhon64.acme.local:/data

Коли хост athlon64 монтує загальну частку NFS, журнал сервера показує успіх:

Feb 11 20:06:46 mandrake mountd[460]: authenticated mount request from atlhon64.acme.local:770 for /data (/data)

Але коли хост C намагається встановити ту саму спільну частину, журнал сервера показує:

Feb 11 20:12:42 mandrake mountd[460]: refused mount request from lap-fzs-2 for /data (/): no export entry

Хост C бачить сервер, доходить до портмейпера і nfsd, але не працює в дозволах.

root@lap-fzs-2:~# showmount -e 192.168.1.4
Export list for 192.168.1.4:
/data 192.168.1.0/24
/suse 192.168.1.0/16


root@lap-fzs-2:~# mount -t nfs -v mandrake:/data /data -onfsvers=2,proto=udp
mount.nfs: timeout set for Mon Feb 11 21:49:23 2013
mount.nfs: trying text-based options 'nfsvers=2,proto=udp,addr=192.168.1.4'
mount.nfs: prog 100003, trying vers=2, prot=17
mount.nfs: trying 192.168.1.4 prog 100003 vers 2 prot UDP port 2049
mount.nfs: prog 100005, trying vers=1, prot=17
mount.nfs: trying 192.168.1.4 prog 100005 vers 1 prot UDP port 636
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting mandrake:/data

Я повинен використовувати NFSv2 на клієнті. Використання NFSv4 не вдасться, оскільки сервер його не підтримує. Він не вдається, оскільки він намагається підключитися через TCP безпосередньо до 2049, але порт не відкритий. Жодного запасного не відбувається. Використання NFSv3 призведе до невідповідності програми / версії RPC.

Що я пропускаю?

Оновлення:
Усі три машини працюють в одній локальній мережі, на одному і тому ж комутаторі. На хості C не існує активного брандмауера:

root@lap-fzs-2:~# iptables -vnL
Chain INPUT (policy ACCEPT 17 packets, 1853 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 20 packets, 5611 bytes)
 pkts bytes target     prot opt in     out     source               destination

Ні в хості A:

[root@mandrake /root]# ipchains -L 
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):

Брандмауер хоста C (або менш вірогідний хост A)? (Що показує / sbin / iptables -vnL?)
davidgo

Ні, немає брандмауерів, один сегмент локальної мережі.
Флоріан

1
спробуйте exportfs -aкоманду на хості A, а потім спробуйте mountкоманду на хості C. Спробуйте явне ім'я хоста або повну IP-адресу в /etc/exports.
тирса

1
Як би це допомогло? Сервер робить час exportfs -aзавантаження, і оскільки це не новий запис, він вже експортується. Файл експорту не змінився, це лише новий хост, який повинен його встановити, а не може.
Флоріан

@sawdust ваша редакція містила правильну підказку: використання повної IP-адреси /etc/exportsфактично змушує її працювати. Зараз у мене нетто / 24 плюс повний перелік IP, і хост C може монтуватися. Ще не пробував господар B. Будь-яка ідея, чому це? Я помітив, що хост B (робочий) використовував виклик MNT версії 2, тоді як хост C вдався до виклику MNT версії 1.
Флоріан

Відповіді:


0

11 лютого 20:12:42 mandrake mountd [460]: відхилено запит на кріплення від lap-fzs-2 для / data (/): немає експорту

Оскільки в повідомленні про відхилення сервера стверджується, що для хоста C "немає запису експорту" , можливо, ви повинні спробувати однозначну рядок у /etc/exportsфайлі з явним ім'ям хоста або повною IP-адресою для C.

Спробуйте також видати exportfs -aкоманду на сервері.
У мене часто виникають проблеми з доступом до мого сервера NFS навіть після перезавантаження. Явна видача exportfs -aкоманди - для мене надійне рішення.


Явне, повторне exportfs -aдля мене нічого не змінило. Використання повної IP-адреси для одного проблемного хоста вирішило мою проблему. Тому, хоча це не пояснює це, і я не розумію цього, це була відповідь на мою проблему, і що я можу порекомендувати спробувати для інших із тим самим питанням.
Флоріан

Додавання запису для проблемної IP-адреси в / etc / export також вирішило мою проблему. Дивно.
PLA

1

Перевірте і перевірте, чи UID та GUID для користувачів NFS однакові на сервері та клієнті. Також переконайтеся, що на сервері папка має дозвіл 777. Це мій / etc / export на моєму сервері, щоб мій клієнт отримав доступ.

Створіть каталог спільних ресурсів NFS: (Створіть кожен сервер із IP-адресою, розділений простір)

mkdir / var / nfs vim / etc / export / var / nfs 10.180.82.250 (rw, sync, root_squash, anonuid = 530, anongid = 530, no_subtree_check)


UID та GID не є однаковим. Вони не повинні бути, це працює, як тільки я отримав частку, встановлену на клієнті NFS. А для операції монтування UID користувача не повинен мати значення. Я сумніваюся, що встановити папку на 777 - це гарна ідея, особливо якщо користувачі можуть увійти на сервер. Знову він працював без цього, як тільки я його встановив.
Флоріан

1

У моєму випадку -o vers = 3 - це відповідь:

$ sudo mount -o vers=3 192.168.172.1:/A/DIR /mnt
  • NFS Server: Ubuntu desktop 12.04 32-розрядний хост vmware
  • Клієнт NFS: сервер Ubuntu 12.04 64-розрядний vmware гість (режим тільки для хоста)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.