准备环境:
1、两台虚拟机(CentOS7),一台为服务器(192.168.1.10),一台为客户端(192.168.1.20)。
2、 配置静态ip、主机名,并写/etc/hosts记录。
3、关闭防火墙和selinux。
安装NFS相关组件
nfs-utils
:包含NFS服务端守护进程和NFS客户端的工具
rpcbind
:提供RPC的端口映射的守护进程及其相关文档、执行文件等
使用yum源安装nfs、rpcbind软件包
yum -y install nfs-utils rpcbind
配置NFS服务
NFS使用/etc/exports定义需要共享的目录及访问对象的控制,NFS在默认情况下不共享任何目录(/etc/exports文件为空)当需要共享目录时管理员需要手动设置。
编辑格式:
[共享目录] [客户端1(参数项)] [客户端2(参数项)]
客户端常用的指定方式:
指定ip地址的主机:192.168.1.10
指定子网中的所有主机:192.168.1.0/24 或192.168.1.0/255.255.255.0
指定域名的主机:www.abc.com
指定域中所有的主机: *.abc.com
所有主机: *
常用选项:
ro 设置共享目录为只读的权限
rw 设置共享目录为可读写的权限
all_squash 将远程访问的所有普通用户以及所属组都映射为匿名用户或用户组,相当于使用nobody用户访问该共享目录(此参数为默认设置)
no_all_squash 与all_squash相反
root_squash 将root用户及其所属组都映射为匿名用户或用户组(默认设置)
no_root_squash 与root_squas相反,即以root身份访问
anonuid和anongid 将远程访问的所有用户以及所属组都映射为匿名用户或用户组,并指定其uid,gid
sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async 将数据先保存在内存缓冲区中,必要时才写入磁盘
NFS服务配置实例
在/etc/exports文件中,每一行代表一个共享目录,并且描述了该目录如何被共享 vi /etc/exports
,写入以下内容
/test 192.168.1.20(rw,no_root_squash) #/test为共享目录,ip为192.168.1.20主机有可读可写权限,并以root身份访问。
服务端创建共享目标:
mkdir /test
启动NFS服务
systemctl restart rpcbind.service
systemctl restart nfs.service
查看服务是否启动成功:
showmount -e 127.0.0.1
–下面的显示表示已经启动
Export list for 127.0.0.1:
/test 192.168.1.20
客户端查看nfs服务器共享列表:
showmount -e 192.168.1.10
Export list for 192.168.1.10:
/share 192.168.1.20
NFS文件系统挂载与卸载:
挂载格式: mount -t nfs 服务器地址:/共享目录 /本机挂载点
卸载格式: umount 挂载点
客户端操作:
mkdir /share #创建本机挂载点
mount 192.168.1.10:/test /share #将共享目录挂载到本地的/share目录
df -h #查看挂载是否成功
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 17G 4.2G 13G 25% /
devtmpfs 473M 0 473M 0% /dev
tmpfs 489M 144K 489M 1% /dev/shm
tmpfs 489M 7.1M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 1014M 173M 842M 18% /boot
tmpfs 98M 8.0K 98M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64
192.168.1.10:/test 17G 4.8G 13G 28% /share
测试共享文件:
服务器:
cd /test
cp /etc/passwd /test
客户端:
ls /share
cat /share/passwd #可以查看到/share/passwd中的内容