这是在 Fedora Core 35 上:这个环境已经成熟,并且有一些称为防火墙或网关的系统,我们第一次希望对其中一个系统进行 NFS 共享。
在客户端上的挂载出现问题后,我通过使用 /etc/fstab 条目的复制粘贴在不同的内部系统上进行相同的挂载来证明服务器的配置很好。我认为这一定是防火墙问题,所以我将接口更改为“受信任”区域。但我仍然得到:
mount.nfs: access denied by server while mounting 192.168.1.1:/fu
所以,我做了一些研究并想出办法:
rpcdebug -m nfsd -s all
但是我没有得到任何与所讨论的坐骑相关的信息——事实上,什么都没有进入/var/log/messages
……这不是我应该看的地方吗?!(其他与 nfs 相关的项目都在那里,但不是这个挂载。)
所以,我尝试了我们的备份服务器并得到了相同的(空)结果。而且我还尝试从使用主机名和使用客户端上的 IP 地址进行更改 - 无论哪种方式,结果都相同,除了我报告的内容。)
线
清楚地表明 NFS 服务器(准确地说是 mountd)拒绝了客户端的挂载请求。
exports
这很可能是因为服务器上的文件中没有提到客户端 IP 。我想你再看一遍。
我想到了。
显然,导出功能会在出现任何错误时停止读取
/etc/export
文件。 已读取且“有效”的导出将被导出,但是,由于处理停止,文件中可能存在的任何进一步导出都将被忽略。不幸的是,此类错误未
/var/log/messages
由nfs
. 到目前为止我发现,报告这些错误的唯一地方是运行:在这种情况下,我的大部分条目都以 " 开头
rw"
,少数几个"ro"
导致这一切的错误只是"r"
. 糟糕!这就是导出停止的地方。同样值得关注的是这些帮助我找到问题的附加工具:
正如问题中已经指出的那样,为了做出彻底的回答,这会将“所有”错误发送到系统日志文件(
/var/log/messages
):同样,并非所有错误都可以在这里,正如已经指出的那样
/etc/export errors
。列出所有可能的当前导出: 从服务器:
导出文件
来自客户:
请注意,这
showmount
是一个危险的可能安全漏洞,因为它可以让客户端轻松了解服务器可以做什么,从而了解其他系统。因此,在这种情况下,它是一台“防火墙/网关”机器,请确保只有 root 可以运行它!最后,您还可以获得网络转储:
对于如何解释所述转储,我没有很好的指导,但你可以运行
strings
它以至少确认你得到了正确的数据包。