凌峰创科服务平台

CentOS NFS服务器如何配置与使用?

在CentOS系统中搭建NFS(Network File System)服务器是一种常见且高效的文件共享方案,特别适用于局域网内多台服务器之间需要共享文件目录的场景,NFS允许客户端像访问本地文件一样访问远程服务器上的文件,简化了文件管理并提高了数据共享的便利性,下面将详细介绍在CentOS系统上配置NFS服务器的完整步骤、注意事项及相关优化技巧。

CentOS NFS服务器如何配置与使用?-图1
(图片来源网络,侵删)

环境准备与安装NFS服务

在开始配置前,需确保服务器和客户端网络互通,且服务器端已安装CentOS操作系统(以CentOS 7为例),通过SSH登录服务器,更新系统软件包列表并安装NFS相关的软件包,NFS服务主要由nfs-utilsrpcbind两个包提供支持,其中rpcbind负责远程过程调用(RPC)服务,是NFS正常运行的基础。

执行以下命令安装所需软件包:

sudo yum update -y
sudo yum install nfs-utils rpcbind -y

安装完成后,启动rpcbindnfs-server服务,并设置开机自启:

sudo systemctl start rpcbind
sudo systemctl enable rpcbind
sudo systemctl start nfs-server
sudo systemctl enable nfs-server

可通过以下命令检查服务状态,确保active (running)

sudo systemctl status nfs-server

配置共享目录

NFS服务器的核心是共享目录的配置,默认情况下,NFS的共享目录配置文件为/etc/exports,该文件定义了哪些目录可以被共享、允许访问的客户端地址以及访问权限,假设我们需要共享/data/nfs_share目录,并允许客户端168.1.0/24网段以读写方式访问,可按以下步骤操作:

  1. 创建共享目录

    sudo mkdir -p /data/nfs_share
    sudo chmod 755 /data/nfs_share  # 设置目录权限,确保客户端可访问
    sudo chown nfsnobody:nfsnobody /data/nfs_share  # 修改所有者为NFS默认用户
  2. 编辑/etc/exports文件
    使用vimnano编辑该文件,添加以下内容:

    /data/nfs_share 192.168.1.0/24(rw,sync,no_root_squash)

    参数说明:

    • 168.1.0/24:允许访问的客户端网段,可指定具体IP(如168.1.100)或使用通配符(如表示所有客户端,不推荐生产环境使用)。
    • rw:客户端以读写方式访问,若只读则用ro
    • sync:数据同步写入磁盘,确保数据安全性,性能要求高时可改用async(异步写入,但存在数据丢失风险)。
    • no_root_squash:允许客户端以root用户身份访问并操作共享文件,生产环境建议使用root_squash(将root用户映射为匿名用户,增强安全性)。
  3. 重新加载NFS配置
    修改/etc/exports后,需执行以下命令使配置生效:

    sudo exportfs -a

配置防火墙与SELinux

CentOS系统默认启用防火墙和SELinux,需开放NFS相关端口及设置SELinux策略,否则客户端可能无法访问。

  1. 防火墙配置
    NFS服务使用多个端口,包括2049(NFS服务)、111(RPC端口映射)、32768-32800(NFS动态端口),可通过以下命令永久开放这些端口:

    sudo firewall-cmd --permanent --add-service=nfs
    sudo firewall-cmd --permanent --add-service=rpc-bind
    sudo firewall-cmd --permanent --add-service=mountd
    sudo firewall-cmd --reload

    或直接开放2049111端口:

    sudo firewall-cmd --permanent --add-port=2049/tcp
    sudo firewall-cmd --permanent --add-port=111/tcp
    sudo firewall-cmd --reload
  2. SELinux配置
    若SELinux处于 enforcing 模式,需调整策略以允许NFS访问,可通过以下命令查看SELinux状态:

    sestatus

    若为 enforcing,可执行以下命令设置SELinux为允许NFS访问(临时生效,重启后失效):

    sudo setsebool -P nfs_export_all_rw on

    或永久修改SELinux模式为permissive(不推荐,降低安全性):

    sudo vi /etc/selinux/config  # 将SELINUX=enforcing改为SELINUX=permissive
    sudo reboot

客户端挂载NFS共享目录

在客户端(同样为CentOS系统)上,可通过mount命令将服务器端的共享目录挂载到本地,假设客户端IP为168.1.100,操作步骤如下:

  1. 创建本地挂载点

    sudo mkdir -p /mnt/nfs_client
  2. 挂载NFS共享目录

    sudo mount -t nfs 192.168.1.200:/data/nfs_share /mnt/nfs_client

    其中168.1.200为NFS服务器IP,/data/nfs_share为共享目录,/mnt/nfs_client为客户端本地挂载点。

  3. 验证挂载
    执行以下命令查看挂载状态:

    df -hT

    若显示类似168.1.200:/data/nfs_share nfs4 10G 1.5G 8.6G 15% /mnt/nfs_client的信息,则表示挂载成功。

  4. 设置开机自动挂载
    编辑/etc/fstab文件,添加以下内容实现开机自动挂载:

    168.1.200:/data/nfs_share /mnt/nfs_client nfs defaults,_netdev 0 0

    参数_netdev表示该设备为网络设备,需在网络启动后挂载,避免启动时挂载失败。

NFS服务优化与故障排查

  1. 性能优化

    • 调整NFS服务器内核参数:编辑/etc/sysctl.conf,添加以下内容并执行sysctl -p生效:
      nfs.nfsd.threads=8  # 根据服务器CPU核心数调整,通常为核心数的2倍
      vm.swappiness=10     # 减少swap使用,提升NFS性能
    • 使用async选项提升写入性能(需权衡数据安全性):
      sudo exportfs -a  # 重新加载配置
  2. 常见故障排查

    • 客户端挂载失败:检查服务器防火墙是否开放端口、SELinux是否阻止、/etc/exports配置是否正确。
    • 权限问题:确保共享目录权限为755,所有者为nfsnobody,或客户端挂载时指定uidgid
      sudo mount -t nfs 192.168.1.200:/data/nfs_share /mnt/nfs_client -o uid=1000,gid=1000
    • 端口冲突:若NFS服务无法启动,可检查/var/lib/nfs目录下的锁文件,或删除后重启服务。

相关问答FAQs

问题1:如何查看NFS服务器的共享目录列表?
答:可通过以下命令查看NFS服务器当前导出的共享目录及客户端权限:

showmount -e 192.168.1.200  # 192.168.1.200为服务器IP

若显示Export list for 192.168.1.200: /data/nfs_share 192.168.1.0/24,则表示配置正确。

问题2:NFS共享目录在客户端显示为只读,如何解决?
答:首先检查服务器端/etc/exports文件中是否包含rw选项,若无则修改并执行exportfs -a重新加载,检查客户端挂载命令是否添加rw选项(如sudo mount -t nfs -o rw 192.168.1.200:/data/nfs_share /mnt/nfs_client),最后确认服务器目录权限是否允许写入(如chmod 755)。

分享:
扫描分享到社交APP
上一篇
下一篇