NFS 挂载失败,权限被拒绝,没有导出条目

Flo*_*ian 10 linux nfs

我在安装 NFS 共享时遇到了无法解决的问题,这让我发疯。情况是这样的:

涉及三台机器:
主机A:mandrake,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
Run Code Online (Sandbox Code Playgroud)

它在主机 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
Run Code Online (Sandbox Code Playgroud)

端口映射器正在运行,导出是已知的,并由主机 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
Run Code Online (Sandbox Code Playgroud)

athlon64主机挂载NFS共享时,服务器日志显示成功:

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

但是当主机 C 尝试挂载相同的共享时,服务器日志显示:

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

主机 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
Run Code Online (Sandbox Code Playgroud)

我必须在客户端上使用 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
Run Code Online (Sandbox Code Playgroud)

也不在主机 A 上:

[root@mandrake /root]# ipchains -L 
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
Run Code Online (Sandbox Code Playgroud)

saw*_*ust 1

2 月 11 日 20:12:42 mandrake mountd[460]:拒绝来自 lap-fzs-2 的 /data (/) 挂载请求:无导出条目

由于服务器的拒绝通知声称主机 C “没有导出条目”/etc/exports ,那么也许您应该尝试在文件中使用明确的主机名或 C 的完整 IP 地址。

exportfs -a还可以尝试在服务器上发出命令。
即使重新启动后,我在访问 NFS 服务器时也经常遇到问题。明确发出exportfs -a命令是可靠的解决方案(对我来说)。