NFS: сервер говорит "запрос на монтирование", но клиент видит "доступ запрещен"

У меня есть две машины, NFS-сервер (RHEL) и клиент (Debian). На сервере настроена NFS, экспортирующая определенный каталог:

server:~$ sudo /usr/sbin/rpcinfo -p localhost
program vers proto   port
100000    2   tcp    111  portmapper
100000    2   udp    111  portmapper
100024    1   udp    910  status
100024    1   tcp    913  status
100021    1   udp  53391  nlockmgr
100021    3   udp  53391  nlockmgr
100021    4   udp  53391  nlockmgr
100021    1   tcp  32774  nlockmgr
100021    3   tcp  32774  nlockmgr
100021    4   tcp  32774  nlockmgr
100007    2   udp    830  ypbind
100007    1   udp    830  ypbind
100007    2   tcp    833  ypbind
100007    1   tcp    833  ypbind
100011    1   udp    999  rquotad
100011    2   udp    999  rquotad
100011    1   tcp   1002  rquotad
100011    2   tcp   1002  rquotad
100003    2   udp   2049  nfs
100003    3   udp   2049  nfs
100003    4   udp   2049  nfs
100003    2   tcp   2049  nfs
100003    3   tcp   2049  nfs
100003    4   tcp   2049  nfs
100005    1   udp   1013  mountd
100005    1   tcp   1016  mountd
100005    2   udp   1013  mountd
100005    2   tcp   1016  mountd
100005    3   udp   1013  mountd
100005    3   tcp   1016  mountd

server$ cat /etc/exports
/dir      *.my.domain.com(ro) 

client$ grep dir /etc/fstab
server.my.domain.com:/dir   /dir      nfs tcp,soft,bg,noauto,ro 0 0

Все вроде хорошо, но когда я пытаюсь смонтировать, я вижу следующее:

client$ sudo mount /dir
mount.nfs: access denied by server while mounting server.my.domain.com:/dir

И на сервере я вижу:

server$ tail /var/log/messages
Mar 15 13:46:23 server mountd[413]: authenticated mount request from client.my.domain.com:723 for /dir (/dir)

Что мне здесь не хватает? Как я должен отлаживать это?

6 ответов

Я видел это, если ваши /etc/hosts.allow и /etc/hosts.deny не верны; проверьте эти файлы на наличие строки с portmap в ней и либо закомментируйте ее (небезопасно, если вы не находитесь за брандмауэром), либо установите строку на клиент-сервере в качестве вашей конкретной подсети.

Так, например, в /etc/hosts.allow:

portmap: 192.168.0.0/16

... и закомментируйте все, что находится в /etc/hosts.deny, чтобы сделать только hosts.allow активным. NFS использует tcpwrappers и эти файлы для управления доступом вместе с тем, что находится в /etc/exports.

Ваш rpcinfo указывает, что NFS пытается подключиться через UDP. оказалось, что NFSv4 больше не работает по протоколу UDP, но ожидает использования TCP.

ядро linux, например, пытается смонтировать rootfs поверх UDP даже для NFSv4, и ему нужно было добавить специальный аргумент в конце nfsroot, пример: nfsroot=192.79.143.131:/diskless/client01,tcp

Я столкнулся с той же проблемой на сервере Debian 10.2 с клиентом macOS. Мое решение:

На сервере NFS добавьте insecure опцион на долю в /etc/exports и повторно запустить exportfs -r

Источник здесь.

Я столкнулся с той же проблемой, мой сервер - машина с Ubuntu, а мой клиент - MacBook Air. В прошлом было решение перезапустить серверную машину, но поскольку я использую ее в качестве медиацентра, это не всегда весело. Итак, что я сделал, чтобы исправить это было:

на сервере отредактируйте / etc / exports

pico /etc/exports

тогда я смываю это

exportfs

и добавьте новую строку с указанным IP-адресом клиента, с которым возникла проблема (моя обычная общая папка - для всей сети), затем я размонтирую общий ресурс на клиенте и заново смонтирую его, и теперь он работает.

PS: но он не показывался как ярлык слева в моем искателе, как обычно, я должен был найти его в точке монтирования

(лучше поздно, чем никогда)

Я испытал тот же и очень специфический сценарий, пытаясь загрузить ядро ​​с помощью загрузчика netbsd pxeboot. Это на самом деле говорит NFSv2. 8 лет назад это также могло быть основной причиной: ваш клиент Debian и сервер rhel не говорили на одном языке. Вы могли бы включить NFSv2, добавив -V2 в качестве аргумента rpc.mountd, Вы также можете в конечном итоге отключить v3 и v4 с помощью -N3,4,

К сожалению, перезагрузка сервера решила проблему, поэтому я до сих пор не знаю, почему это произошло, но это больше не так.

Это сломано от всех машин или только один? Монтируется ли псевдофайловая система nfsd на /proc/fs/nfsd на сервере?

Другие вопросы по тегам