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