我正在尝试将我的弹性文件系统 (EFS) 挂载到同一可用区中的 EC2 实例上。但是,它mount
只是挂起并最终显示Connection timed out
。AWS 文档说我必须配置我的安全组以允许 TCP 2049(NFS 端口)上的流量。但是,即使我允许来自实例的出站 2049 流量、EFS 上的入站 2049 流量,并且我的网络 ACL 允许所有临时端口(TCP 1024-65535)上的入站/出站流量,我仍然无法成功挂载 EFS。
我继续阅读这个帖子NFS 也使用端口 TCP/UDP 111 和 1110。如果是这样,为什么 AWS 文档没有提及这些端口,以及我的新安全组/网络 ACL 规则应该是什么?
答案1
我的网络 ACL 允许所有临时端口 (TCP 1024-65535) 上的入站/出站流量
这就是问题所在——这些规则还不够。
Linux NFS 客户端使用特权来源默认情况下,出站连接使用端口 (<1024),而不是临时端口。(netstat -a -n | grep 2049
等待超时时请参见。)
一些 NFS 服务器要求客户端使用特权端口来发起连接,但 EFS 不需要。
因此,添加-o noresvport
到您的 mount 命令中,您就不会遇到任何问题。
还要注意,EFS 不需要任何其他开放端口 —— 只需要 TCP 2049 到 EFS 端点。