我正在尝试安装 NFS 驱动器,但收到 RPC 身份验证错误,原因是凭据太弱。
在服务器端(192.168.100.109),看起来 NFS 服务器和挂载守护进程正在启动并可用于目标客户端(192.168.100.101):
# cat /etc/exports
/datastore/winmedia -ro 192.168.100.101
# portmap
# nfsd -tun 4
# mountd
# showmount -e 192.168.100.109
Exports list on 192.168.100.109
/datastore/winmedia 192.168.100.101
但是,当尝试在客户端挂载磁盘时,我收到 RPC 身份验证错误
# ls /mnt/winmedia
# mount -v 192.168.100.109:/datastore/winmedia /mnt/winmedia
mount: no type was given - I'll assume nfs because of the colon
mount: RPC: Authentication error; why=Client credential too weak
查看服务器日志,只说连接被拒绝,但没有给出原因。
Feb 11 23:43:25 fattyopenbsd mountd[16785]: Can't open /var/db/mountdtab: No such file or directory
Feb 11 23:48:41 fattyopenbsd mountd[16785]: Refused mount RPC from host 192.168.100.101 port 62826
在客户端,rpcinfo
显示与服务器端相同的数据,但没有程序名称。
服务器端rpcinfo:
# rpcinfo -p 192.168.100.109
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100003 2 tcp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 udp 2049 nfs
100005 1 udp 630 mountd
100005 3 udp 630 mountd
100005 1 tcp 612 mountd
100005 3 tcp 612 mountd
在客户端,同样的事情,但没有进程名称
# rpcinfo -p 192.168.100.109
program vers proto port
100000 2 tcp 111
100000 2 udp 111
100003 2 tcp 2049
100003 3 udp 2049
100003 2 tcp 2049
100003 3 udp 2049
100005 1 udp 630
100005 3 udp 630
100005 1 tcp 612
100005 3 tcp 612
所以,我的问题是 1)为什么安装被拒绝? (有没有办法获得有关失败请求的更详细信息?) 2)如何挂载 NFS 驱动器?
服务器正在运行 OpenBSD 5.8 尝试客户端是 Puppy Linux,并且是 Windows 计算机上的 VirtualMachine。 (不确定虚拟机 IP 是否有问题。如果我ifconfig
在客户端上运行,它会显示10.0.*.*
eth0 上的地址,但 Windows 主机通过无线方式具有 192...101 地址。我想,因为服务器日志显示请求即将到来从...101地址来看,VM问题可能不是问题,但如果我错了,任何建议都会很棒)。
更新我现在认为这个问题与虚拟机网络设置有关。对服务器的请求来自 VM 主机上的非特权端口号 (>1024)。
VM 使用 NAT,因此即使 VM 在发出请求时使用特权端口,这也不会反映在最终请求中。
这应该可以通过使用到主机的桥接连接而不是 NAT 来解决,这会导致请求的 IP 和端口与虚拟机相同,但遗憾的是我的地方只有 wifi,无法使用 wifi 进行桥接连接适配器。
解决方案:使用Samba而不是NFS,这样使用用户名和密码进行身份验证,而不是uid、ip地址和客户端端口号。
答案1
在我的例子中,提升客户端的权限(doas
/ sudo
)就成功了;
a485$ mount -t nfs 192.168.178.203:/home/_transmission/ ~/Torrents
mount_nfs: bad MNT RPC: RPC: Authentication error; why = Client credential too weak
^C
a485$ doas mount -t nfs 192.168.178.203:/home/_transmission/ ~/Torrents
a485$
非特权请求源自非常大的端口号;
Aug 7 12:25:36 t440p mountd[87312]: Refused mount RPC from host 192.168.178.185 port 15630
如果我netstat -a
正确解释输出,则来自“提升”请求的活动连接源自端口901
(忽略不相关的输出);
a485$ netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address
udp 0 0 a485.901 t440p.nfsd