Debian和UbuntuLinux的NFS配置介绍 |
发布时间: 2012/8/13 9:25:30 |
NFS(NetworkFileSystem,网络文件系统)可以通过网络将分享不同主机(不同的OS)的目录——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样! 一般而言,使用nfs能够方便地使各unix-like系统之间实现共享。但如果需要在unix-like和windows系统之间共享,就得使用samba了! NFS运行在SUN的RPC(RemoteProcedureCall,远程过程调用)基础上,RPC定义了一种与系统无关的方法来实现进程间通信。由此,NFSserver也可以看作是RPCserver. 正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定。比如:某个NFSclient发起NFS服务请求时,它需要先得到一个端口(port)。所以它先通过portmap得到portnumber.(不仅NFS,所有的RPC服务程序启动之前,都需要设定好portmap) 在启动RPC服务(比如NFS)之前,需要启动portmap服务!(关于nfs和portmap是否存在于当前系统,看后面的"NFS安装"部分。 与NFS相关的几个文件,命令 1、/etc/exports 对NFS卷的访问是由exports来批准,它枚举了若干有权访问NFS服务器上文件系统的主机名。 2、/sbin/exportfs 维护NFS的资源共享。可以通过它重新设定/etc/exports的共享目录,卸载NFSServer共享的目录或者重新共享等。 3、/usr/sbin/showmount 用在NFSServer端,而showmount则主要用在Client端。showmount可以用來查看NFS共享的目录资源。 4、/var/lib/nfs/xtab NFS的记录文档:通过它可以查看有哪些Client连接到NFS主机的记录。 下面这几个并不直接负责NFS,实际上它们负责所有的RPC 5、/etc/default/portmap 实际上,portmap负责映射所有的RPC服务端口,它的内容非常非常之简单(后面详述) 6、/etc/hosts.deny 设定拒绝portmap服务的主机 7、/etc/hosts.allow 设定允许portmap服务的主机 安装NFS Debian/Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序: $sudoapt-getinstallnfs-kernel-server (安装nfs-kernel-server时,apt会自动安装nfs-common和portmap) 这样,宿主机就相当于NFSServer. 同样地,目标系统作为NFS的客户端,需要安装NFS客户端程序。如果是Debian/Ubuntu系统,则需要安装nfs-common. $sudoapt-getinstallnfs-commmon nfs-common和nfs-kernel-server都依赖于portmap! 配置NFS 由于NFS是一个RPCserver程序。而portmap是用来挂你RPC的端口号映射的。所以先要配置portmap. 配置portmap 方法1:编辑/etc/default/portmap,将-i127.0.0.1去掉。 方法2:$sudodpkg-reconfigureportmap,对Shouldportmapbeboundtotheloopbackaddress?选N. 配置/etc/hosts.deny (禁止任何host(主机)能和你的NFS服务器进行NFS连接),加入: ###NFSDAEMONS portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL 配置/etc/hosts.allow 允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.2开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。参看man页hosts_access(5),hosts_options(5)。加入: ###NFSDAEMONS portmap:192.168.2. lockd:192.168.2. rquotad:192.168.2. mountd:192.168.2. statd:192.168.2. /etc/hosts.deny和/etc/hosts.allow设置对portmap的访问。采用这两个配置文件有点类似"mask"的意思。现在/etc/hosts.deny中禁止所有用户对portmap的访问。再在/etc/hosts.allow中允许某些用户对portmap的访问。 运行$sudo/etc/init.d/portmaprestart重启portmapdaemon. 配置/etc/exports NFS挂载目录及权限由/etc/exports文件定义 比如我要将将我的home目录中的/home/zp/share目录让192.168.2.*的IP共享,则在该文件末尾添加下列语句: /home/zp/share192.168.2.*(rw,sync,no_root_squash) 或者:/home/zp/share192.168.2.0/24(rw,sync,no_root_squash) 192.168.2.*网段内的NFS客户端能够共享NFS服务器/home/zp/share目录内容。且有读,写权限,并且该用户进入/home/zp/share目录后的身份为root 最好加上sync,否则$sudoexportfs-r时会给出警告,sync是NFS的默认选项。 运行$showmount-e查看NFSserver的exportlist. 若更改了/etc/exports,运行$sudoexportfs-r更新 运行$sudo/etc/init.d/nfs-kernel-serverrestart重启nfs服务 /etc/exports实际上就是nfs服务器的核心配置文件了。鸟哥的Linux私房菜列举了一些exports文件的写法。 测试NFS 可以尝试一下挂载本地磁盘(假设本地主机IP地址为:192.128.2.1,将/home/zp/share挂载到/mnt) $sudomount192.168.2.1:/home/zp/share/mnt 运行$df看看结果 $sudoumount/mnt 注意被拷贝文件的读/写权限! 另外,可以使用一定的参数: 使用加参数的办法:mount-onolock,rsize=1024,wsize=1024,timeo=15192.168.2.130:/tmp//tmp/ 本文出自:亿恩科技【www.enkj.com】 |