mount.nfs: доступ запрещен сервером при монтировании

У меня проблема, я гуглял по крайней мере 6 часов 28 часов без удачи. Всякий раз, когда я пытаюсь смонтировать каталог, я получаю следующую ошибку (подробная версия в конце):

mount.nfs: доступ запрещен сервером при монтировании:

Первоначально я использовал computer1 в качестве сервера nfs, но я переместил его на computer2 и пытаюсь смонтировать на computers3-8. В качестве дальнейшего примечания, computer2 теперь действует как маршрутизатор dhcp для всех других компьютеров (даже computer1), но я почти уверен, что проблема связана с настройками computer2 nfs, так как я попробовал следующее:

  1. Попробуйте подключить папку с исходного сервера computer1 к одному из клиентов computers3-8 - УСПЕХ
  2. Попробуйте подключить папку из исходный сервер computer1 на новый сервер computer2 - УСПЕХ
  3. Попробуйте подключить папку с нового сервера computer2 к одному из клиентов computers3-8 - FAILURE
  4. Попробуйте смонтировать папку с нового сервера computer2 на старый сервер computer1 - FAILURE
  5. Попробуйте экспортировать, затем смонтировать любой другая папка на computer2 - FAILURE
  6. ssh в и из computer2 - УСПЕХ

В дополнение к этому Я также проверил, чтобы убедиться, что соответствующие части файла /etc/exports не имеют ошибок. Поэтому я почти абсолютно уверен, что это не проблема разрешения.

Вопрос: Учитывая, что это не сетевая ошибка, кто-нибудь может посоветовать мне, как мне начать отладку этой проблемы.

Подробный вывод:

mount: proc already mounted on /proc
mount: /dev/mmcblk0p5 already mounted on /boot
mount: tmpfs already mounted on /var/tmp
mount: tmpfs already mounted on /var/log
mount.nfs: timeout set for Fri Nov 15 07:27:02 2013
mount.nfs: trying text-based options 'vers=3,rsize=8192,wsize=8192,nolock,addr=192.168.7.1'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.7.1 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.7.1 prog 100005 vers 3 prot UDP port 37300
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 192.168.7.1:/home/raspi/Documents/raspi/raspi

Подробный вывод2:

Вот более прямой подход, при котором монтируется только каталог. под вопросом:

$ sudo mount -v -o "vers=3" 192.168.7.1:/home/raspi/Documents/raspi/raspi /home/raspi/test
mount: no type was given - I'll assume nfs because of the colon
mount.nfs: timeout set for Fri Nov 15 07:47:38 2013
mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified

Я уже сталкивался с этой rpc.statd is not running but is required for remote locking ошибкой раньше, но все поиски в мире мне совсем не помогли ...

РЕДАКТИРОВАТЬ :

Хаос попросил меня выполнить следующие команды и отобразить результаты:

Сначала на сервере:

SERVER$ sudo exportfs -rv
exporting raspi1:/home/raspi/Documents/raspi/raspi
exporting raspi2:/home/raspi/Documents/raspi/raspi
exporting raspi3:/home/raspi/Documents/raspi/raspi
exporting raspi4:/home/raspi/Documents/raspi/raspi
exporting raspi5:/home/raspi/Documents/raspi/raspi
exporting raspi6:/home/raspi/Documents/raspi/raspi
exporting raspi7:/home/raspi/Documents/raspi/raspi
exporting raspi8:/home/raspi/Documents/raspi/raspi
exporting raspi9:/home/raspi/Documents/raspi/raspi
exporting raspi10:/home/raspi/Documents/raspi/raspi
exporting raspi11:/home/raspi/Documents/raspi/raspi
exporting raspi12:/home/raspi/Documents/raspi/raspi
exporting raspi13:/home/raspi/Documents/raspi/raspi
exporting raspi14:/home/raspi/Documents/raspi/raspi
exporting raspi15:/home/raspi/Documents/raspi/raspi
exporting raspi16:/home/raspi/Documents/raspi/raspi
exporting raspi17:/home/raspi/Documents/raspi/raspi
exporting raspi18:/home/raspi/Documents/raspi/raspi
exporting raspi19:/home/raspi/Documents/raspi/raspi
exporting raspi20:/home/raspi/Documents/raspi/raspi
exporting raspi21:/home/raspi/Documents/raspi/raspi
exporting raspi22:/home/raspi/Documents/raspi/raspi
exporting raspi23:/home/raspi/Documents/raspi/raspi
exporting raspi24:/home/raspi/Documents/raspi/raspi
exporting raspi25:/home/raspi/Documents/raspi/raspi
exporting raspi26:/home/raspi/Documents/raspi/raspi
exporting raspi27:/home/raspi/Documents/raspi/raspi
exporting raspi28:/home/raspi/Documents/raspi/raspi
exporting raspi29:/home/raspi/Documents/raspi/raspi
exporting raspi30:/home/raspi/Documents/raspi/raspi
exporting raspi5:/home/raspi/Downloads
exporting 192.168.7.105:/home/raspi/Documents/raspi

А затем на клиенте

CLIENT$ showmount -e 192.168.7.1
Export list for 192.168.7.1:
/home/raspi/Documents/raspi       192.168.7.105
/home/raspi/Documents/raspi/raspi raspi30,raspi29,raspi28,raspi27,raspi26,raspi25,raspi24,raspi23,raspi22,raspi21,raspi20,raspi19,raspi18,raspi17,raspi16,raspi15,raspi14,raspi13,raspi12,raspi11,raspi10,raspi9,raspi8,raspi7,raspi6,raspi5,raspi4,raspi3,raspi2,raspi1
/home/raspi/Downloads             raspi5

CLIENT$ sudo mount -a
mount.nfs: access denied by server while mounting 192.168.7.1:/home/raspi/Documents/raspi/raspi

CLIENT$ sudo tail -f /var/log/daemon.log 2>&1
Nov 15 21:35:55 raspi5 dhclient: bound to 192.168.7.105 -- renewal in 250 seconds.
Nov 15 21:40:05 raspi5 dhclient: DHCPREQUEST on eth0 to 192.168.7.1 port 67
Nov 15 21:40:05 raspi5 dhclient: DHCPACK from 192.168.7.1
Nov 15 21:40:05 raspi5 dhclient: bound to 192.168.7.105 -- renewal in 294 seconds.
Nov 15 21:44:59 raspi5 dhclient: DHCPREQUEST on eth0 to 192.168.7.1 port 67
Nov 15 21:44:59 raspi5 dhclient: DHCPACK from 192.168.7.1
Nov 15 21:44:59 raspi5 dhclient: bound to 192.168.7.105 -- renewal in 262 seconds.
Nov 15 21:49:21 raspi5 dhclient: DHCPREQUEST on eth0 to 192.168.7.1 port 67
Nov 15 21:49:21 raspi5 dhclient: DHCPACK from 192.168.7.1
Nov 15 21:49:21 raspi5 dhclient: bound to 192.168.7.105 -- renewal in 273 seconds.

РЕДАКТИРОВАТЬ 2 :

Хаос попросил меня выполнить следующие команды и отобразите результаты:

SERVER$ ping raspi5
PING raspi5 (192.168.7.105) 56(84) bytes of data.
64 bytes from raspi5 (192.168.7.105): icmp_seq=1 ttl=64 time=0.699 ms
64 bytes from raspi5 (192.168.7.105): icmp_seq=2 ttl=64 time=0.683 ms

SERVER$ sudo tail -f /var/log/daemon.log
tail: cannot open ‘/var/log/daemon.log’ for reading: No such file or directory

Вот мой файл /etc/exports на сервере. Как вы можете видеть, я пытаюсь использовать его имя, определенное в /etc/hosts, его IP-адрес, и я также пытаюсь экспортировать разные папки. Все остальные строки я пропустил, так как они просто дубликаты последней строки, просто перенаправлены на другой распис.

# /etc/exports: the access control list for filesystems which may be exported
#       to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#

/home/raspi/Downloads raspi5(rw,sync,no_subtree_check,no_root_squash)
/home/raspi/Documents/raspi/ 192.168.7.105(rw,sync,no_subtree_check,no_root_squash,fsid=0)
/home/raspi/Documents/raspi/raspi raspi5(rw,sync,no_subtree_check,no_root_squash,fsid=0)

Вот мой файл /etc/fstab на моем клиенте raspi5

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p5  /boot           vfat    defaults          0       2
/dev/mmcblk0p6 /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that

#automatically mount the shared raspi folder(s)
# Remember that NFS4 is AIDS, so use NFS3
192.168.7.1:/home/raspi/Documents/raspi/raspi /home/raspi/ nfs nfsvers=3,rsize=8192,wsize=8192,rw,auto,nolock 0 0

# Move highly used directories to RAM
tmpfs /var/tmp tmpfs nodev,nosuid,size=50M 0 0
tmpfs /var/log tmpfs nodev,nosuid,size=50M 0 0

РЕДАКТИРОВАТЬ 3:

Следуя некоторым советам здесь Я также установил флаг insecure в экспорте, но безрезультатно, и вот вывод rpcinfo -p на клиенте и сервере:

CLIENT$ sudo rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  53553  status
    100024    1   tcp  60026  status

SERVER$ rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  42430  status
    100024    1   tcp  49377  status
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049
    100227    3   tcp   2049
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049
    100227    3   udp   2049
    100021    1   udp  33106  nlockmgr
    100021    3   udp  33106  nlockmgr
    100021    4   udp  33106  nlockmgr
    100021    1   tcp  47922  nlockmgr
    100021    3   tcp  47922  nlockmgr
    100021    4   tcp  47922  nlockmgr
    100005    1   udp  50875  mountd
    100005    1   tcp  53329  mountd
    100005    2   udp  53583  mountd
    100005    2   tcp  42062  mountd
    100005    3   udp  36556  mountd
    100005    3   tcp  39984  mountd

РЕДАКТИРОВАТЬ 4:

Далее, следуя некоторым советам здесь , я получил следующие журналы отладки:

[ 2233.803852] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 2233.803885] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[ 3261.750455] nfsd: last server has exited, flushing export cache
[ 3262.912654] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 3262.912688] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[ 5231.798334] nfsd: last server has exited, flushing export cache
[ 5232.956633] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 5232.956668] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[ 5350.889640] nfsd: last server has exited, flushing export cache
[ 5352.023534] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 5352.023577] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[ 5517.837425] nfsd: last server has exited, flushing export cache
[ 5518.987793] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 5518.987826] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[56604.080162] Netfilter messages via NETLINK v0.30.
[56707.453535] nfsd: last server has exited, flushing export cache
[56708.605020] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[56708.605057] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[57338.926093] NFSD: laundromat service - starting
[57338.926105] NFSD: laundromat_main - sleeping for 90 seconds
[57363.216188] nfsd: freeing readahead buffers.
[57363.216244] nfsd: last server has exited, flushing export cache
[57364.351041] set_max_drc nfsd_drc_max_mem 6008832 
[57364.354764] nfsd: creating service
[57364.354771] nfsd: allocating 32 readahead buffers.
[57364.356023] nfsd4_umh_cltrack_upcall: cltrack_prog is disabled
[57364.356040] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[57364.356072] NFSD: starting 90-second grace period (net ffffffff81cd29c0)
[57364.369688] nfsd_dispatch: vers 3 proc 0
[57372.738225] nfsd_dispatch: vers 4 proc 0
[57372.753507] nfsd_dispatch: vers 4 proc 1
[57372.753521] nfsv4 compound op #1/3: 24 (OP_PUTROOTFH)
[57372.755550] exp_export: export of invalid fs type.
[57372.755679] found domain 192.168.7.105,raspi5
[57372.755685] found fsidtype 1
[57372.755690] found fsid length 4
[57372.755695] Path seems to be <>
[57372.755722] nfsv4 compound op ffff8801a47ec080 opcnt 3 #1: 24: status 2
[57372.755731] nfsv4 compound returned 2
[57372.779429] nfsd_dispatch: vers 3 proc 0
[57372.792595] exp_export: export of invalid fs type.

РЕДАКТИРОВАТЬ 5:

Я добился определенного прогресса и вывел следующее

  1. Это не проблема порта, так как клиент может подключиться к хосту через telnet telnet 192.168.7.1 2049
  2. Это, вероятно, не проблема сети, так как сервер не может даже смонтировать сам себя
  3. Старая версия, которая поддерживала (и все еще поддерживает) монтирование, работала nfs-kernel-server 1:1.2.4-1, тогда как новый сервер, который не поддерживает монтирование, работал nfs-kernel-server 1:1.2.8-2 ]
  4. Команда sudo /etc/init.d/portmap restart работает на старом сервере, но не на новом сервере, что говорит мне, что мне не хватает portmap в сети. ш сервер. Однако, когда я пытаюсь установить его через sudo apt-get install portmap, он говорит мне, что Note, selecting 'rpcbind' instead of 'portmap', and that rpcbind уже является самой новой версией`

Редактировать 6:

Вот вывод iptables -L на моем сервере:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
LOG        all  --  anywhere             anywhere             LOG level warning

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

и правильные порты открыты:

CLIENT$ nmap -P0 192.168.7.1

Starting Nmap 6.00 ( http://nmap.org ) at 2013-11-16 06:44 UTC
Nmap scan report for raspiserver (192.168.7.1)
Host is up (0.0095s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
2049/tcp open  nfs

Nmap done: 1 IP address (1 host up) scanned in 1.55 seconds
5
задан 13 April 2017 в 15:23

6 ответов

У меня была та же проблема, что и у ОП. Раньше у меня это работало, но после обновления ничего не вышло. Решением было добавить опцию "nfsvers = 3".

0
ответ дан 13 April 2017 в 15:23

Мои два коллеги по работе только что решили похожую проблему в Vagrant. AppArmor был виновником, решение можно найти здесь , ссылаясь на:

mount: cannot mount block device /some/path read-only

и dmesg показывает:

[ 6944.194280] type=1400 audit(1385049795.420:32): apparmor="DENIED" operation="mount" info="failed type match" error=-13 parent=6631 profile="lxc-container-default" name="/some/other/path" pid=6632 comm="mount" srcname="/some/path" flags="rw, bind"

AppArmor блокирует mount -o bind внутри Контейнер LXC.

Чтобы включить добавление идентификатора в /etc/apparmor.d/lxc/lxc-default:

profile lxc-container-default flags=(attach_disconnected,mediate_deleted) {
  ...
    mount options=(rw, bind),
  ...

Перезагрузить аппарат:

# /etc/init.d/apparmor reload
0
ответ дан 13 April 2017 в 15:23

Сначала возникает ошибка rpc.statd, потому что демон не работает. Запустите демон:

sudo service statd start

Во-вторых, неверна опция монтирования vers=3, она должна быть

nfsvers=3
0
ответ дан 13 April 2017 в 15:23

Если сервер не монтируется на локальном хосте, проблема не в сети.

Взгляните на /etc/hosts.deny и /etc/hosts.allow.

Только для дальнейших проблем ...: Я играл в эти дни со старой версией NFS. У меня был промежуточный коммутатор между двумя хостами, который разрешал все соединения TCP и UDP от ServerIP < -> ClientIP, telnet работал на каждом порту ... но rpcinfo -p этого не делал.

Мы обнаружили, что у коммутатора есть функция, называемая «inspect», которая проверяет все пакеты «sunrpc» и, если версия отсутствует в «разрешенных» версиях, отбрасывает пакеты, ничего не регистрируя. Это называется «Проверка протокола прикладного уровня». http://www.cisco.com/c/en/us/td/docs/security/fwsm/fwsm31/configuration/guide/fwsm_cfg/inspct_f.html#wp1349924

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

0
ответ дан 13 April 2017 в 15:23

Возможно, стоит упомянуть (даже если это не так), что если вы вдруг получаете эту ошибку после переименования папки или попытки доступа к новой, вы, возможно, забыли, что вам действительно нужно указать сервер - с точки зрения того, какие папки являются общими, а какие нет в /etc/exports - это была проблема в моем случае.

После того, как вы изменили этот файл, вам также нужно сделать sudo service nfs-kernel-server restart

0
ответ дан 13 April 2017 в 15:23

Это ни то, ни другое не похоже но при монтировании от пользователя без полномочий root noresvport может быть полезен в / etc / exports.

Это происходит в Finder (MacOS X) при попытке смонтировать модуль nfs.

0
ответ дан 24 January 2020 в 12:03

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

Похожие вопросы: