Debian/Ubuntu的NFS配置

Debian/Ubuntu的NFS配置

简介:NFS(NetworkFileSystem,网络文件系统)可以通过网络将分享不同主机(不同的OS)的目录——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样!

一般而言,使用nfs能够方便地使各unix-like系统之间实现共享.

原理:NFS运行在SUN的RPC(RemoteProcedureCall,远程过程调用)基础上,RPC定义了一种与系统无关的方法来实现进程间通信.由此,NFSserver也可以看作是RPCserver.

正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定.比如:某个NFSclient发起NFS服务请求时,它需要先得到一个端口(port).所以它先通过portmap得到portnumber.(不仅NFS,所有的RPC服务程序启动之前,都需要设定好portmap)

与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

设定拒绝\允许portmap服务的主机

安装NFS:

(一)NFS服务器的安装

Debian/Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:

$sudoapt-getinstallnfs-kernel-server

(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)

这样,宿主机就相当于NFSServer。

配置NFS:

配置portmap$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.13开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。参看man页hosts_access(5),hosts_options(5)。

###NFSDAEMONS

portmap:192.168.13.

lockd:192.168.13.

rquotad:192.168.13.

mountd:192.168.13.

statd:192.168.13.

/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文件定义,/etc/exports实际上就是nfs服务器的核心配置文件了.

比如我要将我的home目录中的/home/warmbupt/arm/nfs目录让局域网内的所有的IP共享,则在该文件末尾添加下列语句:

/home/test/arm/nfs*(rw,sync,no_root_squash)

以上配置的说明:

59.64.195.97的NFS客户端能够共享NFS服务器/home/test/arm/nfs目录内容.且有读,写权限,并且该用户进入/home/test/arm/nfs目录后的身份为root

最好加上sync,否则$sudoexportfs-r时会给出警告,sync是NFS的默认选项.

修改目录权限:chmod777-R/home/test/arm/nfs

运行$showmount-e查看NFSserver的exportlist.若更改了/etc/exports,运行$sudoexportfs-r更新

运行$sudo/etc/init.d/nfs-kernel-serverrestart重启nfs服务)

$sudoiptables-F

测试NFS:

运行$df看看结果

(二)NFS客户端的配置

在开发系统上,同样地,目标系统作为NFS的客户端,需要安装NFS客户端程序。如果是Debian/Ubuntu系统,则需要安装nfs-common。

$sudoapt-getinstallnfs-commmon

注:nfs-common和nfs-kernel-server都依赖于portmap!

(三)NFS使用

在客户机上面执行

#sudo/etc/init.d/portmapstart

将portmap服务开启。

然后执行(192.168.13.212这是我的服务器IP地址):

#showmount-e192.168.13.212

如果显示了刚才设置的共享文件夹,证明成功了。

最后执行:

#mount192.168.13.212:/home/test/arm/nfs/home/nfs/public

这样进入/home/nfs/public目录就可以看到里面的内容了。

呵呵,这样就可以了。

相关推荐