3.1               NFS服务的查看与安装

目前几乎所有Linux发行版本都默认安装了NFS服务,Red Hat 也不例外。

1.       检查NFS服务的软件包

启动NFS服务需要nfs-utils和portmap这两个软件包。

      使用rpm  –q  nfs-utils  portmap 查看系统是否安装nfs-utils和portmap这两个软件包。


如果未安装,则放入光盘安装。

      使用rpcinfo –p命令检查NFS服务是否正常运行。如果NFS服务运行正常,就可在该命令执行结果中看到关于portmapper、nfs和mountd等守护进程的条目。


3.2               NFS服务的配置

      主要配置文件

/etc/exports

设置后启动NFS服务即可

3.3.1      exports文件的格式

      exports文件每一行提供了一个共享目录的设置,格式如下:

<输出目录>  [ 客户端1 (选项1,选项2,…) ]  [客户端2 (选项1,选项2,…) ]

3.3.2      NFS服务配置实例


下面首先给出NFS主配置文件/etc/exports的一个应用实例,然后对有关设置进行说明。

/nfs/public     192.168.1.0/24(rw,async)  *(ro)

/nfs/student    192.168.16.20(rw,sync)

/nfs/root       *.fjjy.net(ro,no_root_squash)

/nfs/users      *.fjjy.net(rw,insecure,all_squash,sync,no_wdelay)

/mnt/cdrom      192.168.1.*(ro)

(1) /nfs/public     192.168.1.0/24(rw,async)  *(ro)

    输出目录/nfs/public可供子网192.168.1.0/24中的所有客户机进行读写操作,而其他网络中的客户机只能读取该目录的内容。

    值得注意的是,当某用户使用子网192.168.1.0/24中的客户机访问该共享目录时,能否真正地写入,还要看该目录对该用户有没有开放Linux文件系统权限的写入权限。

²      如果该用户是普通用户,那么只有当该目录对该用户开放了写入权限时,该用户才可以在该共享目录下创建子目录及文件,且新建子目录及文件的所有者就是该用户(实际上应该是该用户的UID)。

²      如果该用户是root用户,由于默认选项中有root_squash,root用户会被映射为nfsnobody,因此只有该共享目录对nfsnobody开放了写入权限时,该用户才能在共享目录中创建子目录及文件,且所有者将变成nfsnobody。

(2) /nfs/student    192.168.16.20(rw,sync)

    输出目录/nfs/student只供IP地址为192.168.16.20的客户机进行读写操作。

(3) /nfs/root       *.fjjy.net(ro,no_root_squash)

    对于输出目录/nfs/root,fjjy.net域中的所有客户机都具有只读权限,并且不将root用户映射到匿名用户。

(4) /nfs/users      *.fjjy.net(rw,insecure,all_squash,sync,no_wdelay)

    对于输出目录/nfs/users来说,fjjy.net域中的所有客户机都具有可读可写的权限,并且将所有用户及所属的用户组都映射为nfsnobody,数据同步写入磁盘。如果有写入操作则立即执行。

(5) /mnt/cdrom      192.168.1.*(ro)

    对于输出目录/mnt/cdrom来说,子网192.168.1.0/24中的所有客户机都具有只读的权限。

 

3.3.3      维护NFS服务的输出目录列表

修改/etc/exports文件的内容后,实际上不需要重新启动NFS服务,而直接使用命令exportfs就可以使设置立即生效。

      exportfs命令用于维护NFS服务的输出目录列表,命令格式如下:

exportfs  [选项]

选项:

-a:   输出在/etc/exports文件中所设置的所有目录;

-r:   重新读取/etc/exports文件中的设置,并使设置立即生效,而不需重新启动NFS服务;

-u: 停止输出某一目录;

-v:   在输出目录时将目录显示到屏幕上。

1.       重新输出共享目录

修改/etc/exports文件的内容后,使用下面命令来重新输出共享目录。

exportfs  -rv


2.       停止输出所有共享目录

要停止当前主机中NFS服务器的所有共享目录输出,可使用下面的命令。

exportfs  -auv


3.3               启动和停止NFS服务

1.       启动NFS服务

要使NFS服务器能正常工作,需要启用portmap和nfs这两个服务。并且portmap一定要先于nfs启动,具体命令如下:

命令执行后,先启动portmap和nfs服务成功


2.       停止NFS服务

停止NFS服务,需要先停止NFS服务再停止portmap服务。如果系统中还有其他服务(如NIS)需使用portmap服务,则可以不停止portmap服务。




3.       重新启动NFS服务

重新启动命令:(使用前题是NFS服务已经启动)



4.       检查portmapnfs服务的状态

相关命令:




5.       设置自动启动NFS服务

对于实际系统,应该设置系统在指定的运行级别(通常为 3 和 5)自动启动portmap和nfs服务,具体命令如下。


也可执行“ntsysv”命令启动服务配置程序,找到“nfs”和“portmap”,然后在其前面加“*”号,确定即可。


3.4               测试NFS服务

1.       检查输出目录所使用的选项

通过查看/var/lib/nfs/etab文件,了解真正输出目录时,到底使用了什么选项。

vi  /var/lib/nfs/etab


2.       使用showmount命令测试NFS服务器的输出目录状态

showmount命令格式:showmount [选项] NFS服务器名称或地址

常用选项:

 -a :显示指定的NFS服务器的所有客户端主机及其所连接的目录;

 -d :显示指定的NFS服务器中已被客户端连接的所有输出目录;

 -e :显示指定主机中NFS服务器上所有输出的共享目录。


3.5               NFS客户端的使用

在NFS服务器设置完成后,客户端可以先查看NFS服务器上有那些共享目录,然后使用mount命令将可用的共享目录挂载到本机的文件系统,甚至还可以实现开机自动挂载,以后用户就可像使用本地文件系统中的目录一样使用NFS挂载目录。

3.6.1      查看NFS服务器信息

在客户端,使用showmount命令查看NFS服务器上有那些共享目录。

【例】以下以另一台Red Hat 9 Linux为客户端(IP是192.168.1.10)进行为例说明。服务器的IP为192.168.1.5。


3.6.2      连接NFS服务器

得知远程NFS服务器上的共享资源后,接下来就是进行实际的挂载操作。

      挂载NFS服务器上的输出目录的命令格式为:

mount  –t  NFS  服务器名或IP地址:输出目录  本地挂载目录

   【例】将NFS服务器(IP:192.168.1.5;hostname:LinuxServer)上的/nfs/public共享目录,挂载到客户端(IP:192.168.1.10)的/mnt/nfs_public目录上。

      注意:

必须在服务器的/etc/hosts文件中加上客户端的IP地址解析,如:


否则连接时,会出现:mount:RPC:超时  的错误


      现观测服务器的共享目录和光驱中的内容:


客户端进行连接:


 

3.6.3      卸载NFS服务器

用umount命令来卸载不想再使用的已挂载NFS输出目录。

umount 要卸载的目录路径

3.6.4      启动时自动连接NFS

要想让系统在启动时自动挂载NFS服务器上的输出目录,应编辑/etc/fstab文件,在文件中加入如下格式的语句。

NFS服务器名或IP地址:输出目录本地挂载目录 nfs defaults 0 0