CentOS上使用NFS服务,须要安装两个包(nfs-utils和rpcbind), 不过当使用yum安装nfs-utils时会把rpcbind一块儿安装上:vim
[root@localhost ~]# yum install -y nfs-utils
在以前的CentOS版本中,是须要安装portmap包的,从CentOS6开始,就改成rpcbind了。NFS配置起来仍是蛮简单的,只须要编辑配置文件/etc/exports便可。下面阿铭就先建立一个简单的NFS服务器。安全
首先是修改配置文件,默认该文件为空,如今编辑它:服务器
[root@localhost ~]# vim /etc/exports
写入以下内容:async
/home/ 192.168.137.0/24(rw,sync,all_squash,anonuid=501,anongid=501)
这个配置文件就这样简单一行。共分为三部分,第一部分就是本地要共享出去的目录,第二部分为容许访问的主机(能够是一个IP也能够是一个IP段)第三部分就是小括号里面的,为一些权限选项。关于第三部分,阿铭简单介绍一下:ui
rw :读写;spa
ro :只读;code
sync :同步模式,内存中数据时时写入磁盘;内存
async :不一样步,把内存中数据按期写入磁盘中;rpc
no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操做同样。不安全,不建议使用;同步
root_squash:和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;
all_squash:无论使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;
anonuid/anongid :要和root_squash 以及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。
介绍了上面的相关的权限选项后,再来分析一下阿铭刚刚配置的那个/etc/exports文件。其中要共享的目录为/home,信任的主机为192.168.137.0/24这个网段,权限为读写,同步,限定全部使用者,而且限定的uid和gid都为501。
编辑好配置文件后,就该启动NFS服务了:
[root@localhost ~]# /etc/init.d/rpcbind start; /etc/init.d/nfs start
在启动nfs服务以前,须要先启动rpcbind服务,以前CentOS老版本中并非rpcbind, 而是叫作portmap.
客户端在挂载NFS以前,咱们须要先看一看服务端都共享了哪些目录,这须要使用showmount命令,可是这个命令是nfs-utils这个包所带的,因此一样须要安装nfs-utils:
[root@localhost ~]# yum install -y nfs-utils
如今能够看看服务器端都共享了哪些目录了:
[root@localhost ~]# showmount -e 192.168.137.10 Export list for 192.168.137.10: /home 192.168.137.0/24
能够看到刚才咱们在服务端配置的nfs共享信息。 showmount -e
加IP就能够查看NFS的共享状况,上例中,就能够看到192.168.137.10的共享目录为/home,信任主机为192.168.137.0/24这个网段。
下面在客户端上挂载服务端的nfs:
[root@localhost ~]# mount -t nfs 192.168.137.10:/home/ /mnt/ [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用%% 挂载点 /dev/sda3 14G 6.4G 6.7G 50% / tmpfs 160M 0 160M 0% /dev/shm /dev/sda1 97M 27M 66M 29% /boot /dev/sdb5 989M 19M 920M 3% /home 192.168.137.10:/home/ 989M 19M 920M 3% /mnt
用 df -h
命令能够看到多出来一个/mnt分区,它就是NFS共享的目录了。
在这一章节里,使用的命令很少,另外还有一个经常使用的命令那就是exportfs,它的经常使用选项为[-aruv].
-a :所有挂载或者卸载;
-r :从新挂载;
-u :卸载某一个目录;
-v :显示共享的目录;
使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用这个exportfs便可。接下来阿铭作一个实验,先改一下服务端的配置文件:
[root@localhost ~]# vim /etc/exports
增长一行:
/tmp/ 192.168.137.0/24(rw,sync,no_root_squash)
而后服务端上执行命令:
[root@localhost ~]# exportfs -arv exporting 192.168.137.0/24:/tmp exporting 192.168.137.0/24:/home
在以前的命令中用到了mount命令来挂载nfs,其实mount这个nfs服务仍是有些说法的。首先是用-t nfs 来指定挂载的类型为nfs。另外在使用nfs时,经常使用一个选项就是 -o nolock 了,即在挂载nfs服务时,不加锁。 在客户端上执行:
[root@localhost ~]# mkdir /test [root@localhost ~]# mount -t nfs -o nolock 192.168.137.10:/tmp/ /test/
咱们还能够把要挂载的nfs目录写到client上的/etc/fstab文件中,挂载时只须要执行 mount -a
便可。在 /etc/fstab里加一行:
192.168.137.10:/tmp/ /test nfs nolock 0 0
由于刚刚挂载过,因此先卸载:
[root@localhost ~]# umount /test/
而后执行:
[root@localhost ~]# mount -a
这样也能够挂载上,并且之后开机会自动挂载上。