为何挂载在EC2实例上的AWS EFS文件系统显示为127.0.0.1:/?
为什么AWS EFS挂载后
df -h显示127.0.0.1:/ 你看到127.0.0.1:/是因为使用了Amazon EFS Utils工具(带TLS加密的默认挂载方式),它会创建一个本地NFS代理(基于stunnel),实际挂载的是这个本地代理的地址,而非直接连接EFS的域名端点。
具体原因
当通过mount.efs命令挂载EFS时,efs-utils默认会启用TLS加密传输。为了实现这一点,工具会自动启动一个stunnel进程,监听本地127.0.0.1:2049端口,将本地的NFS请求通过TLS转发到EFS的HTTPS端点(443端口)。此时df命令识别的挂载源是本地代理的地址,因此显示为127.0.0.1:/。
验证方法
可以通过以下命令确认本地代理进程存在:
ps aux | grep stunnel # 或者查看端口监听状态 netstat -tulpn | grep 2049
执行后会看到监听127.0.0.1:2049的stunnel进程,它负责将请求转发到EFS的实际域名端点。
如何让df显示EFS域名
如果希望df输出中显示EFS的完整域名,可以使用原生NFS命令直接挂载(不通过efs-utils的TLS代理):
sudo mount -t nfs4 fs-043e64138b1234567.efs.ap-northeast-1.amazonaws.com:/ /home/ubuntu/myapp/files
⚠️ 注意:这种挂载方式没有TLS加密,数据在传输过程中是明文的,仅适合测试环境,生产环境强烈推荐保留efs-utils的TLS挂载方式。
内容的提问来源于stack exchange,提问作者Kid_Learning_C
相关产品推荐
相关产品推荐

