NFS服务配置
NFS服务配置
NFS服务会经常用到,它用于在网络上共享存储
第一步服务端配置NFS
在CentOS上使用NFS服务需要安装两个包(nfs-utils和rpcbind),不过当使用yum工具安装nfs-utils时会一并安装rpcbind:
# yum install -y nfs-utils
首先修改配置文件(默认该文件为空)
#vim /etc/exports //写入以下内容:
/home/nfstestdir 192.168.188.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
rw:表示读/写
ro:表示只读
sync:同步模式,表示内存中的数据实时写入磁盘
async:非同步模式,表示把内存中的数据定期写入磁盘
no_root_aquash:加上这个选项后,root用户就会对共享目录拥有至高的权限控制,就像是对本机的目录操作一样,但这样安全性降低
root_aquash:与no_root_squash选项对应,表示root用户对共享目录的权限不高,只有普通用户的权限,即限制了root
all_squash:表示不管使用NFS的用户是谁,其身份都会被限定为一个指定的普通用户身份
anonuid/anongid:要和root_squash以及all_squash选项一同使用,用于指定使用NFS的用户被限定后的uid和gid,但前提是本机的etc/passwd中存在相应的uid和gid
编辑好配置文件后创建相关目录并启动NFS服务:
# mkdir /home/nfstestdir
# systemctl start rpcbind
# systemct start nfs
# systemct enable rpcbind
# systemct enable nfs
在启动NFS之前,需要先启动rpcbind (CentOS的老版本中为portmap)
二 客户端挂NFS
最好是打开另外一台虚拟机(客户端和服务端)在客户端挂在NFS之前,需要先查看服务端共享了哪些目录
客户端(188.129)安装nfs-utils包后,使用showmount命令查看
# showmount -e 192.168.188.128
Export list for 192.168.188.128:
/home/nfstestdir 192.168.188.0/24
使用命令showmount -e IP就可以查看NFS的共享情况,从上例可以看到192.168.188.128的共享目录为/home/nfstestdir,信任主机为192.168.188.0/24这个网段。
然后在客户端上(188.129)挂载NFS,如下图所示:


使用命令df -h可以看到增加了一个/mnt分区,它就是NFS共享的目录了。进入到/mnt/目录下,并创建测试文件:
# cd /mnt/
# touch aminglinux.txt
touch:无法创建“aminglinux.txt”:权限不够
这是因为在服务端(188.128)上创建/home/nfstestdir目录权限不合适,挂载后相当于被限制为uid为1000的用户,解决该问题需要在服务端(188.128)上修改/home/nfstestdir目录权限:
#chomd 777 /home/nfstestdir/
然后再到客户端上(188.129)创建测试文件:

可以看到创建的新文件aminglinux.txt所有者和所属组为aming,其uid和gid都为1000。
第三步 命令 exportfs
exportfs命令的常用选项为-a,,-r,-u和-v
-a:全部挂载或卸载
-r:重新挂载
-u:卸载某一个目录
-v:显示共享的目录
当改变/etc/exports配置文件后,使用exportfs命令挂载不需要重启 NFS服务
修改服务端的配置文件:
# vim /etc/exports //增加一行:
/tmp/ 192.168.188.0/24(rw,sync,no_root_squash)
然后在服务端上执行如下命令:
# exportfs -arv
exporting 192.168.188.0/24:/tmp
exporting 192.168.188.0/24:/home/nfstestdir

浙公网安备 33010602011771号