如果在Red Hat 9安装时已经默认安装了NFS组件,接下来的工作主要是配置相关文件使服务器提供NFS服务,步骤如下。

  (1)设定某台计算机为NFS服务器,并在后台启动相关的守护进程(在"服务配置"中启动)。一般来说,如果NFS服务器要提供服务,必须启动inet、portmap、nfs和mount这4个守护进程并保持在后台运行。

  (2)规划服务器分区,从安全等方面定义哪些分区作为要共享的文件系统。

  (3)在客户端列表中定义每一台客户机的参数。

  (4)修改/etc/exports。

  (5)重新启动NFS服务器,启动方法可采用命令行的方式,即/etc/rc.d/init.d/nfs restart。服务器端文件系统的共享设置有3种方法,一是直接修改/etc/exports文件;二是用exports命令来增加和删除目录;三是图 形化的配置方法。

  1、 了解NFS网络文件的系统结构

  NFS网络文件的系统结构包括如下目录结构:

  1./etc/exports

  这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在。可能要使用vi主动建立起这个文件,接下来的设定也仅仅是这个文件。

  2./usr/sbin/exportfs

  这是维护NFS共享资源的命令,我们可以用其重新分享/etc/exports变更的目录资源,并将NFS Server分享的目录卸载或重新分享等。这个命令是NFS系统中相当重要的一个,至于命令的用法在后面章节再介绍。

  3./usr/sbin/showmount

  showmount命令主要用在Client端,可以用来查看NFS共享出来的目录资源。

  4./var/lib/nfs/*tab

  在NFS服务器的登录文件都放置到/var/lib/nfs/目录中,在该目录下有两个比较重要的登录文件,一个是etab,主要记录了NFS所分享出来的目录的完整权限设定值;另一个是xtab,记录曾经连接到此NFS主机的相关客户端数据。

  2、 配置/etc/exports文件

  用户可以把需要共享的文件系统直接编辑到/etc/exports文件中,这样当NFS服务器重新启动时系统就会自动读取/etc /exports文件,从而告诉内核要输出的文件系统和相关的存取权限。在下面的例子中显示了/etc/exports文件中几个条目项的内容,被挂载在 /pub目录下的文件系统具有只读访问权限,所有的计算机在访问文件系统的时候不必经过安全检查。编辑/etc/exports文件:

  # vi /etc/exports

  /usr/sys/src -maproot=daemon host2

  /usr/ports -ro -network 192.168.1.0

  从上面这个例子中可以看出exports文件的格式,首先是定义要共享的文件目录。必须使用绝对路径,而不能使用符号链接。然后设置对这个目录 进行访问限制的参数,用于保证安全性。在第1行设置中,将/usr/sys/src目录共享出去。但限制客户机上的root用户等价于本机上的 daemon用户,以避免客户机上的root用户拥有这个服务器上的root权限进行非法操作。此后的host2参数是主机名,从而限制只有host2才 能共享这个/usr/sys/src目录;第2行设置共享/usr/ports目录,但限制为只允许读取,并且也只有网络上的192.168.1.0计算 机才能访问这个共享目录。

  (1)rw:可读写权限。

  (2)ro:只读权限。

  (3)no_root_squash:当登录NFS主机使用共享目录的使用者是root时,其权限将被转换成为匿名使用者,通常它的UID与GID都会变成nobody身份。

  (4)root_squash;如果登录NFS主机使用共享目录的使用者是root,那么对于这个共享的目录来说,它具有root的权限。

  (5)all_squash:忽略登录NFS使用者的身份,其身份都会被转换为匿名使用者,通常即nobody。

  (6)anonuid:通常为nobody,也可以自行设定这个UID的值,UID必须存在于/etc/passwd中。

  (7)anongid:同anonuid,但是变为Group ID。

  (8)sync:同步写入资料到内存与硬盘中。

  (9)async:资料会先暂存于内存中,而非直接写入硬盘。

  主机可以使用以下格式。

  (1)单个机器:一个全限定域名(能够被服务器解析)、主机名(能够被服务器解析)或IP地址。

  (2)使用通配符来指定的机器系列,使用 * 或 ?字符来指定一个字符串匹配。IP地址中不使用通配符。如果反向DNS查询失败,它们可能会碰巧有用。在完整域名中指定通配符时,点(.)不包括在通配符 中。例如,*.example.com包括one.example.com,但不包括one.two.example.com.。

  (3)IP网络:使用a.b.c.d/z,a.b.c.d是网络,z是子网掩码中的位数(如192.168.0.0/24)。另一种可以接受的 格式是a.b.c.d/netmask,a.b.c.d是网络,netmask是子网掩码(如192.168.70.8/255.255.255.0)。

  3、 激活服务portmap和nfsd

  命令如下:

  # /etc/rc.d/init.d/portmap start

  # /etc/rc.d/init.d/nfs start

  portmap激活之后,就会出现一个端口号为111的sunrpc的服务。至于nfs则会激活至少两个以上的系统守护进程,然后就开始监听Client PC的需求。使用cat/var/log/messages可以查看操作是否成功:

  #cat /var/log/messages

  Nov 16 15:04:45 cao portmap: portmap startup succeeded

  Nov 16 15:04:53 cao nfs: Starting NFS services: succeeded

  Nov 16 15:04:54 cao nfs: rpc.rquotad startup succeeded

  Nov 16 15:04:54 cao nfs: rpc.mountd startup succeeded

  Nov 16 15:04:54 cao nfs: rpc.nfsd startup succeeded

  4、 exportfs命令

  如果修改了/etc/exports文件后不需要重新激活nfs,只要重新扫描一次/etc/exports文件,并且重新将设定加载即可:

  # exportfs [-aruv]

  参数说明如下。

  (1)-a:全部挂载(或卸载)/etc/exports文件内的设定。

  (2)-r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。

  (3)-u:卸载某一目录。

  (4)-v:在export时将共享的目录显示在屏幕上。

  5、 检验目录/var/lib/nfs/xtab

  检验所共享的目录内容,查看/var/lib/nfs/xtab文件:

  # vi /var/lib/nfs/xtab

  /home/cao 192.168.0.1(rw,sync,wdelay,hide,secure,root_squash,

  no_all_squash,subtree_check,secure_locks, mapping=identity,anonuid=-2,

  anongid=-2)

  此即/home/cao这个共享出去的目录预设NFS中的属性。

  6、 showmount

  showmount命令如下:

  # showmount [-ae] hostname

  参数说明如下。

  (1)-a或-all:以host:dir这样的格式来显示客户主机名和挂载点目录。

  (2)-d或-directories:仅显示被客户挂载的目录名。

  (3)-e或-exports:显示NFS服务器的输出清单。

  (4)-h或-help:显示帮助信息。

  (5)-v或-version:显示版本信息。

  (6)--no-headers:禁止输出描述头部的信息。

  当要扫描某一主机所提供的NFS共享的目录时,使用showmount -e IP(或主机名称hostname)即可。

  7、 观察激活的端口号

  命令如下:

  # netstat -utln

  Active Internet connections (only SERVERs)

  Proto Recv-Q Send-Q Local Address Foreign Address State

  tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN <== portmap

  tcp 0 0 0.0.0.0:817 0.0.0.0:* LISTEN <== rpc.xxxx

  tcp 0 0 0.0.0.0:1266 0.0.0.0:* LISTEN <== rpc.xxxx

  udp 0 0 0.0.0.0:2049 0.0.0.0:*         <== nfs 的端口

  udp 0 0 0.0.0.0:814 0.0.0.0:*         <== rpc.xxxx

  udp 0 0 0.0.0.0:1327 0.0.0.0:*         <== rpc.xxxx

  udp 0 0 0.0.0.0:111 0.0.0.0:*         <== portmap

  nfs所开启的端口是2049,其他端口是RPC Server其他程序(例如rpc.mountd、rpc.rquotad及rpc.nfsd.)随机产生的。即端口号不会是固定的,每次restart nfs都会得到不一样的端口号。

  8、 启动和停止NFS服务器

  在导出NFS文件系统的服务器中,nfs服务必须在运行。使用以下命令来查看NFS守护进程的状态:

  /sbin/service nfs status

  使用以下命令来启动NFS守护进程:

  /sbin/service nfs start

  使用以下命令来停止NFS守护进程:

  /sbin/service nfs stop

  要在引导时启动nfs服务,使用以下命令:

  /sbin/chkconfig --level 345 nfs on

  还可以使用ntsysv或服务配置工具来配置在引导时启动这些服务。

 

 

一、NFS服务器 的安装

    检查linux 系统中是否安装了nfs-utils和portmap 两个软件包

 

 

 

(RHEL4系统默认已经安装了这两个软件包)

 

命令#rpm –q nfs-utils portmap

 

二、查看NFS服务器

    命令#service nfs starus

    #service portmap status

 

     三、如果服务器没有启动,则开启服务(默认服务下nfs没有完全开启)

命令#service nfs start

    #service portmap start

 

四、指定NFS服务器的配置文件

    NFS服务器的配置文件保存“/etc/”目录中,文件名称是“exp orts”,该文件用于被指NFS服务器提供的目录共享

    命令#vi /etc/exports

    配置“exports”文件格式如下

    /home *(sync,ro)

    Home:共享目录名

    *:表示所有主机

    (sync,ro):设置选项

    exports文件中的“配置选项”字段放置在括号对(“( )”)中 ,多个选项间用逗号分隔

    sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项

    ro:设置输出的共享目录只读,与rw不能共同使用

    rw:设置输出的共享目录可读写,与ro不能共同使用

    exports文件中“客户端主机地址”字段可以使用多种形式表示主机地址

    192.168.152.13 指定IP地址的主机

    nfsclie nt.test.com 指定域名的主机

    192.168.1.0/24 指定网段中的所有主机

    *.test.com 指定域下的所有主机

    * 所有主机

 

五、重新输出共享目录

    Exportfs管理工具可以对“exports”文件进行管理

    命令#exportfs –rv 可以让新设置的“exports”文件内容生效

 

六、显示NFS服务器的输出目录列表

    显示当前主机中NFS服务器的输出列表

    # showmount -e

 

七、显示NFS服务器中被挂载的共享目录

    显示当前主机NFS服务器中已经被NFS客户机挂载使用的共享目录

    # showmount -d

 

八、在另外一个linux系统中挂在共享目录

    显示NFS服务器的输出

    # showmount -e 192.168.152.13

    挂载NFS服务器中的共享目录

    # mount -t nfs 192.168.152.13:/software /mnt/

 

九、查看mnt目录中的内容

    Cd /mnt |ll

 

 十、卸载系统中已挂载的NFS共享目录

    命令# umount /mnt/

 

总结:

    1、在配置NFS服务器之前用ping命令确保两个linux系统正常连接,如果无法连接关闭图形界面中的防火墙#service iptables stop

    2、在配置中确保输入的命令是正确的