一、安装
# 安装
yum install -y nfs-utils
二、配置
# 启动服务
systemctl start rpcbind.service
systemctl start nfs-server.service
# 设置开机自动启动
systemctl enable rpcbind.service
systemctl enable nfs-server.service
# 创建输出目录
mkdir -p /home/nfs
# 修改输出目录所属
chown nfsnobody:nfsnobody /home/nfs
# 修改输出目录权限
chmod 755 /home/nfs
# 修改配置文件
vi /etc/exports
配置文件:
格式:<目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
- 目录:NFS系统中需要共享给客户机使用的目录
- 客户端:可以访问这个NFS输出目录的IP
单台:192.168.3.100
子网:192.168.3.0/24
所有:*
- 选项:设置目录的访问权限
只读:ro
读写:rw
- 用户映射选项
all_squash:客户机上的任何用户访问该共享目录时都映射成匿名用户(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户(默认设置);
no_root_squash:客户机用root访问该共享文件夹时,不映射root用户;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
- 其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
/etc/exports示例内容:
/home/nfs 192.168.0.0/22(rw,sync,all_squash)
输出目录:/home/nfs
访问:192.168.0.0/22
读写:rw
映射用户:all_squash全部映射为nfsnobody用户
其他: sync立即写入
# 使配置生效
exportfs -a
# 查看共享目录
showmount -e
三、防火墙配置
# 启动服务
systemctl start firewalld.service
# 放行NFS RPC-BIND MOUNTD服务
firewall-cmd --zone=public --add-service=nfs --permanent
firewall-cmd --zone=public --add-service=rpc-bind --permanent
firewall-cmd --zone=public --add-service=mountd --permanent
# 重载配置
firewall-cmd --reload
# 查看配置
firewall-cmd --list-all
# 开启自动启动
systemctl enable firewalld.service
四、Windows挂载测试
通过控制面板程序和功能开启NFS客户端功能
mount -o anon \\192.168.3.141\home\nfs k:
k: 现已成功连接到 \\192.168.3.141\home\nfs
命令已成功完成。
五、Centos客户端挂载测试
# 安装
yum install -y nfs-utils
# 创建挂载点
mkdir /mnt/nfs
# 查看共享目录
showmount -e 192.168.3.141
# 挂载目录
mount -t nfs 192.168.3.141:/home/nfs /mnt/nfs
# 查看挂载
df -h
# 修改开机启动脚本自动挂载
vi /etc/rc.local
/etc/rc.local内容:
# 末尾增加挂载命令
mount -t nfs 192.168.3.141:/home/nfs /mnt/nfs