linux nfs设置

来源:百度文库 编辑:神马文学网 时间:2024/06/13 05:20:13

NFS Server端的设定

  NFS Server端的设定,首先需要确认Linux主机是否可以支持NFS这项服务,然后再设定使用者的来源IP或主机名称以及共享出去的目录权限。

  那么,在Client PC怎么使用这个共享出来的目录呢?首先以showmount检查Linux Server是否有可以使用的 NFS目录。如果有就将它mount在本机上面,这样就可以使用NFS Server主机提供的资源了。

  1.系统要求

  除了前面已经提到的两个系统守护进程portmap与nfs-utils之外,内核(Kernel)版本最好高于2.2.18。此外,如果重新编译过内核,一定要选择支持NFS。

  2.etc/exports

  编辑 /etc/exports文件:

  # vi /etc/exports

  /usr/src/sys -maproot=daemon host2

  /usr/ports -ro -network 192.168.1.0

      /SecondHDD 192.168.3.199(rw)

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

  ◆ rw 可擦写的权限。

  ◆ ro 只读的权限。

  ◆ no_root_squash 当登入NFS主机使用共享之目录的使用者如果是root时,那么这个使用者的权限将被转换成为匿名使用者,通常它的UID与GID都会变成nobody身份。

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

  ◆ all_squash 不论登入NFS使用者的身份为何,它的身份都会被转换成为匿名使用者,通常也就是nobody。

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

  ◆ anongid 同anonuid,但是变成group ID就是了。

  ◆ sync 资料同步写入到内存与硬盘当中。

  ◆ async 资料会先暂存于内存当中,而非直接写入硬盘。

  3.激活服务portmap和nfsd

  #/etc/rc.d/init.d/portmap start (or:#service portmap start)

  #/etc/rc.d/init.d/nfs start (or:#service 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

exportfs -rv

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

  # exportfs [-aruv]

  参数说明:

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

  -r 重新挂载/etc/exports里的设定,此外,亦同步更新/etc/exports及/var/lib/nfs/xtab的内容。

  -u 卸载某一目录。

  -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 [-ae] hostname

  参数说明:

  -a 在屏幕上显示目前主机与Client所连上来的使用目录状态 。

  -e 显示hostname这部机器的/etc/exports里面的共享目录。

  当要扫瞄某一主机所提供的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 的 port

  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服务

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

  Client端PC的设定

  1.扫瞄可以使用的NFS Server目录

  在Client本地端建立mount point,使用mount将远程主机共享的目录挂载进来。假设主机名称是www.cao.net,使用showmount查看NFS Server可以共享的目录。然后将/home/public挂载在 /home/nfs/public下:

  # showmount -e www.cao.net

  Export list for localhost:

  /tmp *

  /home/linux *.cao.net

  /home/public (everyone)

  /home/cao 192.168.0.1

  2.挂载/home/public目录

  首先建立这个目录,然后再利用mount指令来挂载/home/public目录:

  # mkdir -p /home/nfs/public

  # mount -t nfs CAO.linux.org:/home/public /home/nfs/public

  挂载的格式:

  # mount -t nfs hostname(orIP):/directory/mount/point

  # df

  Filesystem 1K-blocks Used Available Use% Mounted on

  /dev/hda1 1904920 1235380 572776 68% /

  /dev/hdb1 976344 115212 810736 13% /backup

  www.cao.net:/home/public 1904920 1235376 572776 69% /home/nfs/public

  将资料挂载进来后,只要进入/home/nfs/public目录,就等于到了www.cao.net那部NFS Server的/home/public 目录中。

  3.卸载使用umount

  # umount /home/nfs/public

  关机时如果NFS Server上面还有Client联机,建议NFS Server关机之前,要先关掉portmap与nfs这两个系统服务。如果无法正确地将这两个系统服务关掉,那么先以netstat -utlp找出PID,然后使用kill杀掉进程,这样才能正常关机。

=========================================================================

一、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/”目录中,文件名称是“exports”,该文件用于被指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地址的主机

    nfsclient.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 172.16.75.1

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

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

    九、查看mnt目录中的内容

    Cd /mnt |ll

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

    命令# umount /mnt/

    总结:

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

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

    3、更改完“exports”文件后要输入exportfs -rv