不同安全组下的两台实例如何以类NFS方式实现文件传输共享?
不同私有子网实例类NFS文件共享配置方案
前置网络连通性配置
- 首先确认两个实例所在私有子网的路由可达:同一VPC下的私有子网默认路由互通,跨VPC场景需要先配置VPC对等连接或云厂商私网互通产品打通网络。
- 安全组规则调整(假设A实例为共享服务端,B为客户端):
- 服务端A安全组入方向放行客户端B私网IP对应服务端口的访问权限
- 客户端B安全组出方向如果为严格限制模式,需放通到服务端A私网IP对应端口的访问规则
方案1:原生NFS(最贴合类NFS需求)
服务端配置(Linux系统)
- 安装NFS服务组件:
Debian/Ubuntu系列执行:apt install nfs-kernel-server -y
RHEL/CentOS系列执行:yum install nfs-utils -y - 创建共享目录并设置权限:
mkdir -p /data/nfs_share chmod 755 /data/nfs_share - 编辑NFS配置文件
/etc/exports,添加共享规则:
参数说明:rw为可读可写,sync为同步写入磁盘,no_root_squash允许客户端root用户访问共享目录,可按需调整。/data/nfs_share 客户端B私网IP(rw,sync,no_root_squash,no_subtree_check) - 启动服务并加载配置:
systemctl start nfs-server systemctl enable nfs-server exportfs -rvNFSv4默认仅需开放
2049/tcp端口,低版本NFS还需额外开放111/tcp、111/udp及mountd相关端口。
客户端配置(Linux系统)
- 安装NFS客户端组件:
Debian/Ubuntu系列执行:apt install nfs-common -y
RHEL/CentOS系列执行:yum install nfs-utils -y - 创建本地挂载目录并执行挂载:
mkdir -p /mnt/nfs mount 服务端A私网IP:/data/nfs_share /mnt/nfs - 验证:执行
df -h可看到对应挂载点,直接操作/mnt/nfs下的文件即可同步到服务端。 - 开机自动挂载配置:编辑
/etc/fstab添加如下内容:服务端A私网IP:/data/nfs_share /mnt/nfs nfs defaults 0 0
方案2:SSHFS(轻量加密替代方案)
如果不想配置多端口规则,可使用SSHFS实现挂载式共享,仅需开放SSH默认22端口:
- 服务端无需额外安装服务,仅需开启SSH服务,安全组入方向放行客户端B私网IP的22端口访问即可。
- 客户端安装SSHFS组件:
Debian/Ubuntu系列执行:apt install sshfs -y
RHEL/CentOS系列先启用epel源,再执行:yum install fuse-sshfs -y - 挂载命令:
配置SSH免密登录后无需每次输入密码,默认基于SSH加密传输,适合敏感文件场景。sshfs 服务端用户名@服务端A私网IP:/服务端共享目录 /本地挂载目录 - 卸载命令:
umount /本地挂载目录
注意事项
- 所有安全组规则仅放行对端私网IP,禁止放行
0.0.0.0/0等大范围网段,避免暴露服务带来安全风险。 - 原生NFS默认未加密传输,跨网络传输敏感文件建议搭配IPsec加密或使用SSHFS方案。
内容的提问来源于stack exchange,提问作者Caterina
相关产品推荐
相关产品推荐

