NFS服务器安装与配置
以下操作基于 CentOS 6.5 32位系统环境。
假设服务器IP为 192.168.1.1,客户端主机A IP为 192.168.1.2,客户端主机B IP为 192.168.1.3。目标是让A、B两台客户端共享NFS服务器上的文件目录。
1. 安装NFS服务
在CentOS系统上使用yum安装NFS相关软件包:
yum install nfs-utils
安装完成后,主要的配置文件是 /etc/exports,维护工具是 /usr/sbin/exportfs,查看共享状态的命令是 /usr/sbin/showmount。
2. 创建共享目录
在根目录下创建一个用于共享的文件夹(实际生产环境中,建议将共享目录设置在独立的数据盘上,与系统盘分离):
mkdir /download
根据实际需求设置该目录的权限。
3. 配置共享
编辑NFS配置文件:
vi /etc/exports
在文件中添加以下内容,将 /download 目录共享给指定的两台客户端:
/download 192.168.1.2(rw,no_root_squash) 192.168.1.3(rw,no_root_squash)
保存并退出编辑器。然后使用以下命令检查共享是否发布成功:
showmount -e localhost
4. 重新加载配置
修改配置文件后,需要使用 exportfs 命令使配置生效。该命令常用选项如下:
-a:挂载或卸载/etc/exports文件中的所有设置。-r:重新挂载/etc/exports中的设置,并同步更新相关文件。-u:卸载指定的共享目录。-v:在操作过程中显示详细信息。
重新挂载所有配置:
exportfs -arv
卸载所有已共享的目录:
exportfs -auv
5. 防火墙设置
如果服务器启用了防火墙(如iptables),需要开放NFS服务相关的端口(如2049、111等)。具体端口和规则请根据实际防火墙配置进行调整。若仅为测试,可暂时关闭防火墙,但不建议在生产环境中这样做。
6. NFS配置参数参考
- rw/ro:设置共享目录为可读写或只读。最终权限还受文件系统本身的权限控制。
- sync/async:sync表示数据同步写入内存和硬盘;async表示数据先暂存于内存,再异步写入硬盘,性能更好但风险稍高。
- no_root_squash/root_squash:客户端以root身份访问时,root_squash(默认)会将其权限映射为匿名用户(nfsnobody),更安全;no_root_squash则保留root权限,慎用。
- all_squash:将所有访问用户都映射为匿名用户。
- anonuid/anongid:指定匿名用户映射的UID和GID。
NFS客户端安装与挂载
以下以客户端A(IP: 192.168.1.2)为例,B操作相同,注意IP地址不同。
1. 安装客户端软件
在客户端安装必要的软件包:
yum install nfs-utils portmap
注意:在较新版本的系统中,portmap 服务可能已更名为 rpcbind,请根据系统实际情况确认。
2. 启动相关服务
启动RPC绑定服务:
/etc/init.d/rpcbind start
如果NFS服务器启用了NFS锁功能,客户端也需要启动对应的服务:
/etc/init.d/nfslock start
3. 挂载NFS共享目录
在客户端创建本地挂载点,并挂载服务器的共享目录:
mkdir /download
mount -t nfs 192.168.1.1:/download /download
使用 df -h 命令检查挂载是否成功。
4. 卸载共享目录
卸载命令:
umount /download
5. 挂载选项建议
如果仅作为文件存储,建议添加安全挂载选项,限制客户端的权限和误操作:
mount -t nfs -o nosuid,noexec,nodev,rw 192.168.1.1:/download /download
nosuid:忽略文件系统中的suid权限。noexec:禁止直接执行该文件系统中的二进制程序。nodev:不解释文件系统中的字符或块设备。
6. 开机自动挂载
编辑 /etc/rc.d/rc.local 文件,将挂载命令添加进去:
vi /etc/rc.d/rc.local
在文件末尾添加:
mount -t nfs 192.168.1.1:/download /download
保存并退出。注意:如果客户端挂载了NFS共享,NFS服务器将无法正常关机,需要先卸载所有客户端的挂载。
7. 服务管理与防火墙
服务器重启后,需要启动NFS服务:
service nfs start
可以将NFS服务设置为开机自启:
chkconfig --level 345 nfs on
如果防火墙配置导致NFS无法访问,可以临时关闭防火墙进行排查,但不建议长期关闭:
chkconfig iptables off
使用 chkconfig 命令可以查看各服务的启动状态。