我在安装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
它在主机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
portmapper正在运行,导出由主机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程序/版本不匹配。
我想念什么?
更新:
所有三台计算机都在同一交换机的同一LAN上。主机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):
exportfs -a
命令在主机A,然后尝试mount
在主机C.命令尝试明确的主机名或完整的IP地址/etc/exports
。
exportfs -a
在启动时会执行一次,并且由于这不是新条目,因此已经被导出。导出文件没有更改,只是应该挂载而不能挂载的新主机。
/etc/exports
实际上可以使其工作。我现在拥有了/ 24 net以及列出的完整IP,并且可以安装主机C。还没有尝试过主机B。知道为什么会这样吗?我注意到主机B(正在工作的主机)确实使用了版本2的MNT调用,而主机C诉诸了版本1的MNT调用。