一、nfs简介
nfs(network file system) 是一种分布式文件系统协议,允许用户通过网络在不同主机间共享文件和目录。它适用于局域网环境,常用于服务器集群、数据共享等场景。本文详细介绍nfs服务端与客户端的安装、配置及挂载流程。
二、nfs服务端配置
1. 安装nfs服务
根据 linux 发行版选择命令:
ubuntu/debian
sudo apt update && sudo apt install nfs-kernel-server
centos/rhel
sudo yum install nfs-utils # centos 7 sudo dnf install nfs-utils # centos 8+/rhel
2. 创建共享目录
sudo mkdir -p /mnt/nfs_share sudo chown nobody:nogroup /mnt/nfs_share # 设置权限(根据需要调整)
3. 配置nfs导出规则
编辑配置文件 /etc/exports
,定义共享目录及访问权限:
# 语法:<共享目录> <客户端ip/网段>(权限选项) /mnt/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check)
常用权限选项:
rw:读写权限。
ro:只读权限。
sync:同步写入磁盘(数据安全性高)。
async:异步写入(性能更好,但可能丢失数据)。
no_root_squash:允许客户端root用户保留权限(谨慎使用)。
示例:
/mnt/nfs_share *(rw,sync,no_root_squash)
4. 生效配置并启动服务
sudo exportfs -a # 重新加载 exports 配置 sudo systemctl start nfs-server # 启动服务 sudo systemctl enable nfs-server # 设置开机自启
5. 防火墙配置
开放 nfs 相关端口(nfsv4 默认使用 tcp 2049):
sudo ufw allow 2049/tcp # ubuntu sudo firewall-cmd --permanent --add-service=nfs && firewall-cmd --reload # centos
三、nfs客户端配置
1. 安装nfs客户端工具
ubuntu/debian
sudo apt install nfs-common
centos/rhel
sudo yum install nfs-utils
2. 创建本地挂载点
sudo mkdir -p /mnt/nfs_client
3. 手动挂载nfs共享
sudo mount -t nfs <服务端ip>:/mnt/nfs_share /mnt/nfs_client
示例:
sudo mount -t nfs 192.168.1.100:/mnt/nfs_share /mnt/nfs_client
4. 自动挂载(重启生效)
编辑 /etc/fstab
文件,添加以下行:
<服务端ip>:/mnt/nfs_share /mnt/nfs_client nfs defaults 0 0
示例:
192.168.1.100:/mnt/nfs_share /mnt/nfs_client nfs defaults 0 0
5. 验证挂载
df -h | grep nfs # 查看挂载状态 touch /mnt/nfs_client/test.txt # 测试读写权限
四、高级配置与调试
1. 指定nfs版本
挂载时强制使用 nfsv4:
sudo mount -t nfs -o vers=4 192.168.1.100:/mnt/nfs_share /mnt/nfs_client
2. 用户身份映射
在服务端 /etc/exports
中配置 anonuid
和 anongid
:
/mnt/nfs_share 192.168.1.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
3. 查看nfs共享状态
服务端:
showmount -e localhost # 查看已导出的共享目录
客户端:
showmount -e <服务端ip>
4. 日志排查
- 服务端日志:
/var/log/syslog
(ubuntu)或/var/log/messages
(centos)。 - 客户端日志:
dmesg | grep nfs
。
五、常见问题解决
权限被拒绝(permission denied)
- 检查服务端
/etc/exports
的权限配置。 - 确保客户端用户对挂载点有访问权限。
连接超时或无法访问
- 确认防火墙已放行nfs端口(尤其是nfsv3需要额外开放
rpcbind
端口)。 - 使用
rpcinfo -p <服务端ip>
检查rpc服务状态。
挂载后文件属主显示为nobody
- 在服务端配置
no_all_squash
或指定anonuid/anongid
。
六、总结
nfs 是 linux 环境中高效的文件共享解决方案。通过配置服务端导出规则、客户端挂载目录,并合理设置权限与防火墙规则,即可实现稳定可靠的网络存储。对于生产环境,建议结合kerberos增强安全性,并定期监控nfs性能。
注意:nfs默认不加密传输数据,公网环境建议使用vpn或ssh隧道保护通信。
以上就是在linux中安装、配置和挂载nfs的完整指南的详细内容,更多关于linux安装、配置和挂载nfs的资料请关注代码网其它相关文章!
发表评论