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目录就可以看到里面的内容了。
呵呵,这样就可以了。