mount.nfs 疑难解答:Centos 7 机器的连接超时

Posted

技术标签:

【中文标题】mount.nfs 疑难解答:Centos 7 机器的连接超时【英文标题】:Troubleshooting mount.nfs: Connection timed out for Centos 7 machines 【发布时间】:2020-04-10 18:50:42 【问题描述】:

有人可以帮我解决在两台 Centos 7 机器之间设置 NFS 共享的问题吗?

https://www.howtoforge.com/nfs-server-and-client-on-centos-7 https://www.unixmen.com/setting-nfs-server-client-centos-7/

我已经配置了防火墙并且服务器工作正常,我可以从不同的(第三个)Centos 7机器上挂载共享文件夹。

但是,在另一台客户端机器上,我们称它为 111.111.111.111 我无法挂载:

 `mount -t nfs 255.255.255.255:/var/nfsshare /some/existing/folder`

(我得到 mount.nfs: Connection timed )

当我同时运行 tcpdump 时,我得到:

[root@111.111.111.111 ~]#  tcpdump -i eth0 -n host 255.255.255.255
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
13:45:35.795666 IP 111.111.111.111.1015 > 255.255.255.255.nfs: Flags [S], seq 221559787, win 29200, options [mss 1460,sackOK,TS val 2467213240 ecr 0,nop,wscale 7], length 0
13:45:36.797428 IP 111.111.111.111.1015 > 255.255.255.255.nfs: Flags [S], seq 221559787, win 29200, options [mss 1460,sackOK,TS val 2467214242 ecr 0,nop,wscale 7], length 0
...

客户端可以 ping 服务端。

rpcinfo -p 161.53.19.149

给出: rpcinfo: can't contact portmapper: RPC: Remote system error - Connection timed out

但是,我可以从客户端远程登录到 1112049 端口。

根据我的阅读,这应该是防火墙问题,但显然不是,因为即使我禁用服务器(甚至客户端)上的防火墙,它也不起作用。

接下来我应该如何解决这个问题?

【问题讨论】:

【参考方案1】:

这是我找到的用于排除 NFS 连接故障的最佳工作簿: https://docs.oracle.com/cd/E23824_01/html/821-1454/rfsadmin-215.html

缓慢而仔细地遵循这些说明,他们应该会发现问题。该文档是一个很好的分步故障排除示例,您可以在其中检查所有连接先决条件,然后再检查您尝试测试的实际服务。

以下是一些可能有帮助的附加信息:

您的网络嗅探输出很简单 - 服务器没有在 NFS TCP 端口上响应您。我希望服务器的 IP 不是真正的 255.255.255.255,因为这是一个广播地址,不太可能可靠地工作。

您可能已经删除了所有防火墙,但 NFS 服务器在 /etc/exports 文件中根据您所关注的 HowToForge 链接有自己的权限控制。您需要指定所有客户端,而不仅仅是一个 IP 地址。您还可以使用包含所有客户端的网络范围。 “man 5 exports”应该告诉你更多关于如何编辑这个文件的信息。请不要输入“*”来匹配 HowToForge 链接中建议的所有 IP 地址,这通常是个坏主意。

portmapper 可能正在使用 TCP 包装器权限文件 - /etc/hosts.deny 和 /etc/hosts.allow - 请参阅“man 5 hosts_access”了解这些文件的格式。 在 syslog 文件中查找客户端的 IP 地址,以查看是否有关于该客户端的任何消息。

即使您认为已关闭防火墙,也请运行“iptables -vL”以查看是否有任何您忽略的规则以及它们是否有任何命中。

如果您在任何机器上都有自定义 MTU 设置(例如,在特定于存储的 LAN 上,人们经常设置巨型数据包),请确保没有不匹配。这不太可能在家庭网络上发生。

您的嗅探显示客户端正在尝试通过 TCP 连接到 nfs 端口 2048,可能客户端配置为 NFSv4,而服务器配置为 NFSv3 或更低版本。您可能会在 rpcinfo 命令中看到这一点,因为它显示了服务器支持的 NFS 版本。

【讨论】:

以上是关于mount.nfs 疑难解答:Centos 7 机器的连接超时的主要内容,如果未能解决你的问题,请参考以下文章

解决centos下挂载目录报mount.nfs: Stale file handle

MAC OS 中mount nfs 报错问题.

在 docker 容器内挂载 nfs 共享

[nfs无法挂载问题] mount.nfs: access denied by server while mounting localhost:/data/dev/mysql

linux的nfs问题

如何在客户端上设置 NFS 共享的配额或限制?