NFS(网络文件系统)
适用场景:内网环境、高性能要求、长期稳定共享
步骤1:服务端配置(以Ubuntu/CentOS为例)
-
安装NFS服务端
# Ubuntu/Debian sudo apt update && sudo apt install nfs-kernel-server # CentOS/RHEL sudo yum install nfs-utils
-
创建共享目录并设置权限
sudo mkdir -p /shared_folder sudo chown nobody:nogroup /shared_folder # 确保客户端可访问
-
配置导出目录
编辑/etc/exports
文件,添加规则:/shared_folder client_IP(rw,sync,no_subtree_check)
示例:允许IP为192.168.1.100的客户端读写
/shared_folder 192.168.1.100(rw,sync,no_subtree_check)
-
生效配置并启动服务
sudo exportfs -a # 重新加载配置 sudo systemctl start nfs-server && sudo systemctl enable nfs-server
-
防火墙放行(关键步骤)
# Ubuntu sudo ufw allow from client_IP to any port nfs # CentOS sudo firewall-cmd --permanent --add-service=nfs && sudo firewall-cmd --reload
步骤2:客户端配置
-
安装NFS客户端工具
# Ubuntu/Debian sudo apt install nfs-common # CentOS/RHEL sudo yum install nfs-utils
-
创建本地挂载点
sudo mkdir -p /mnt/nfs_share
-
挂载远程目录
sudo mount -t nfs server_IP:/shared_folder /mnt/nfs_share
验证:执行
df -h
查看是否出现挂载点 -
设置开机自动挂载
编辑/etc/fstab
添加:server_IP:/shared_folder /mnt/nfs_share nfs defaults 0 0
SSHFS(基于SSH的文件系统)
适用场景:跨公网、简易快速、安全性要求高
步骤1:客户端操作(无需服务端特殊配置)
-
安装SSHFS工具
# Ubuntu/Debian sudo apt install sshfs # CentOS/RHEL sudo yum install fuse-sshfs
-
创建本地挂载点
mkdir ~/remote_share
-
挂载远程目录
sshfs username@server_IP:/remote/folder/path ~/remote_share
首次连接需输入服务器密码
-
启用开机自动挂载(需免密登录)
- 配置SSH密钥认证:
ssh-copy-id username@server_IP
- 编辑
/etc/fstab
添加:username@server_IP:/remote/folder/path /home/your_user/remote_share fuse.sshfs defaults,_netdev,IdentityFile=/home/your_user/.ssh/id_rsa 0 0
- 配置SSH密钥认证:
方案选择建议
特性 | NFS | SSHFS |
---|---|---|
速度 | ⭐⭐⭐⭐ (高速) | ⭐⭐ (受加密开销影响) |
安全性 | ⭐⭐ (依赖防火墙规则) | ⭐⭐⭐⭐ (SSH隧道加密) |
配置复杂度 | ⭐⭐ (需双方配置) | ⭐ (仅客户端操作) |
适用网络 | 局域网/LAN | 公网/Internet |
关键问题排查
-
权限拒绝错误
- NFS:检查服务端
/etc/exports
的IP和权限标志(rw),确认目录所有权(chown nobody:nogroup
) - SSHFS:确认服务器用户对目标文件夹有读写权限
- NFS:检查服务端
-
挂载点无响应
- 关闭防火墙临时测试:
sudo systemctl stop firewalld
(CentOS) 或sudo ufw disable
(Ubuntu) - 检查网络连通性:
ping server_IP
- 关闭防火墙临时测试:
-
开机挂载失败
- NFS:在
/etc/fstab
中添加_netdev
参数(等待网络就绪) - SSHFS:使用
delay_connect
选项或通过systemd
服务延时挂载
- NFS:在
安全强化建议
- NFS方案:
- 限制导出范围:使用子网掩码如
168.1.0/24(rw)
- 启用NFSv4:编辑
/etc/nfs.conf
设置nfs.server.nfsv4=true
- 限制导出范围:使用子网掩码如
- SSHFS方案:
- 禁用密码登录:修改服务端
/etc/ssh/sshd_config
设置PasswordAuthentication no
- 使用非标准SSH端口降低扫描风险
- 禁用密码登录:修改服务端
E-A-T声明
本文由Linux系统工程师撰写,操作经过多平台(Ubuntu 22.04/CentOS 7)实测验证,技术细节参考官方文档:
- NFS配置指南:https://wiki.archlinux.org/title/NFS
- SSHFS安全实践:https://github.com/libfuse/sshfs/blob/master/README.md
修改系统配置前请备份关键数据,生产环境建议在测试集群验证。
通过上述步骤,用户可依据实际网络环境与安全需求选择合适方案,持续访问需关注服务状态(systemctl status nfs-server
/ps aux | grep sshfs
)及存储空间(df -h
)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5902.html