欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > NFS从零部署

NFS从零部署

2025/4/28 6:29:03 来源:https://blog.csdn.net/weixin_41311528/article/details/147561510  浏览:    关键词:NFS从零部署

第0步:准备两台虚拟机,作为服务端和客户端

在这里插入图片描述
以下是在 CentOS 7 环境下配置和使用 NFS 服务 的详细步骤,包含实际应用示例:


一、环境说明

  • 服务器:CentOS 7(IP: 192.168.1.100
  • 客户端:CentOS 7(IP: 192.168.1.200
  • 共享目录/data/project(服务器端)
  • 挂载目录/mnt/nfs_project(客户端)

二、服务器端配置

1. 安装NFS服务

# 安装NFS服务端软件
sudo yum install -y nfs-utils rpcbind

在这里插入图片描述

2. 创建共享目录并设置权限

sudo mkdir -p /data/project
sudo chmod 755 /data/project  # 设置目录权限
sudo chown nobody:nobody /data/project  # 设置属主为匿名用户(可选)

3. 配置NFS共享规则

编辑 /etc/exports 文件:

sudo vi /etc/exports

添加以下内容:

/data/project 192.168.1.200(rw,sync,no_root_squash)  # 允许单个客户端
# 或允许整个子网:
# /data/project 192.168.1.0/24(rw,sync,no_subtree_check)
  • rw:读写权限
  • sync:同步写入
  • no_root_squash:允许客户端root用户保留权限(谨慎使用)

4. 启动NFS服务

# 启动服务并设置开机自启
sudo systemctl start rpcbind nfs-server
sudo systemctl enable rpcbind nfs-server# 重新加载exports配置
sudo exportfs -arv

在这里插入图片描述

5. 配置防火墙(重要!)

# 允许NFS服务通过防火墙
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload

在这里插入图片描述


三、客户端配置

1. 安装NFS客户端工具

sudo yum install -y nfs-utils

2. 创建挂载点目录

sudo mkdir -p /mnt/nfs_project

3. 挂载NFS共享目录

sudo mount -t nfs 192.168.1.100:/data/project /mnt/nfs_project

4. 验证挂载

df -h | grep nfs  # 查看挂载状态
ls /mnt/nfs_project  # 查看共享内容

在这里插入图片描述

5. 设置开机自动挂载

编辑 /etc/fstab

sudo vi /etc/fstab

添加以下行(注意这里的地址是服务器的ip地址):

192.168.1.100:/data/project /mnt/nfs_project nfs defaults,_netdev 0 0
  • _netdev:确保网络就绪后再挂载

在这里插入图片描述

四、实际应用示例

场景:多服务器共享代码目录

  • 服务器端:将 /data/project 作为共享目录存放项目代码
  • 客户端:通过NFS挂载到本地目录,直接运行代码
操作步骤:
  1. 在服务器端创建测试文件:
    echo "Hello from NFS Server" > /data/project/test.txt
    

在这里插入图片描述

  1. 在客户端查看文件:

    cat /mnt/nfs_project/test.txt  # 应显示服务器端内容
    
  2. 在客户端写入文件:

    echo "Client writes to NFS" >> /mnt/nfs_project/test.txt
    
  3. 在服务器端验证同步:

    cat /data/project/test.txt  # 应包含客户端写入的内容
    

五、高级配置选项

1. 用户权限管理

  • 使用 anonuidanongid 指定匿名用户UID/GID:
    /data/project 192.168.1.200(rw,sync,all_squash,anonuid=1000,anongid=1000)
    

2. 性能优化

  • 调整挂载参数(客户端):
    mount -t nfs -o rsize=8192,wsize=8192,timeo=14 192.168.1.100:/data/project /mnt/nfs_project
    

3. 安全增强

  • 限制IP访问范围:
    /data/project 192.168.1.200(rw) 192.168.1.201(ro)
    

六、常见问题排查

1. 挂载失败:Connection refused

  • 检查服务器端防火墙和NFS服务状态:
    sudo systemctl status nfs-server
    sudo firewall-cmd --list-all
    

2. 客户端无写入权限

  • 确保服务器端 exports 文件配置了 rw 权限
  • 检查共享目录的本地文件系统权限:
    ls -ld /data/project
    

3. 文件修改不同步

  • 检查是否使用了 sync 参数
  • 尝试手动同步:
    sudo exportfs -arv  # 服务器端重新导出共享
    

七、注意事项

  1. 生产环境安全

    • 避免使用 no_root_squash
    • 尽量缩小IP访问范围
    • 定期检查共享目录权限
  2. SELinux问题

    # 如果遇到权限问题,临时关闭SELinux
    sudo setenforce 0
    # 永久关闭需修改/etc/selinux/config
    

通过以上步骤,可以在CentOS 7环境下快速搭建NFS服务,并实现跨服务器的文件共享。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词