NFS协议是一种用于文件共享的协议,它可以使得主机之间进行文件的共享。客户端可以像在本机上的文件一样操作远程主机的文件。NFS协议最初仅支持UDP协议,目前最新版本的NFS可以支持UDP和TCP协议,不过UDP协议的速度会更快。
一、安装NFS服务器和客户端
NFS协议是一个十分简单的协议,它本身没有提供信息传输的协议和功能。之所以NFS能够让主机之间通过网络进行资料共享,这是因为NFS使用了一些其它的传输协议,主要用到了RPC(Remote Procedure Call)功能。所以在启动NFS服务器的时候需要启动RPC服务。
在debian下进行NFS服务区的安装有两个版本可供选择,nfs-kernel-server 和 nfs-user-server。二者之间的差别在于前者是在内核层实现的,速度更快,后者的速度相对慢一些。
在ubuntu下使用 sudo apt-get install nfs-kernel-server 进行安装。
二、服务器端的设定
要使安装的服务器程序能够正常工作,主要的工作是对服务器的配置文件进行编辑。这个配置文件是/etc/exports,这个文件中的格式如下:
共享的目录 主机名称1或者IP1(参数1,参数2) 主机名称2或者IP2(参数3,参数4)
上面这个格式表示,将同一个目录共享给两个不同的主机,但这两个主机的访问权限和参数是不同的,所以需设置两个主机得到的权限。可以设定的参数如下:
编辑/etc/exports为如下的内容。将/tmp目录共享为任何人可以共享并可以进行读写操作;/home/test 目录192.168.1子网下的主机可以进行读写,其它主机只读。
/tmp *(rw,no_root_squash)
/home/test 192.168.1.*(rw) *(ro)
三、客户端的操作
要在客户端挂载服务器上共享的NFS目录,使用通用的mount命令进行,其命令格式为:
mount -t nfs 主机名或者主机IP地址:/共享目录名 挂载的本机目录
例如对于上述服务器的设置,使用如下命令将/home/test 目录挂载到本机的/mnt/nfs目录下。
mount -t nfs 192.168.1.153:/home/test /mnt/nfs
挂载在本机目录后,由于本机和服务器在同一个网段上,可以像操作本机目录中的文件一样进行操作。
注意:在服务器开启之后,可能客户端不能正常挂载服务区已经共享出来的目录。一般是由于Linux 防火墙开启,可以将防火墙清空或者关闭,清空的命令为:
iptebles -F
四、showmount命令
在NFS相关的命令中showmount命令是经常使用的命令。它主要有两个命令选项,含义如下:
-a:这个参数一般在NFS SERVER上使用,是用来显示已经挂载上本机nfs目录的客户端机器列表。
-e:显示指定的NFS SERVER 上export出来的目录
例如,下面是命令列出当前系统中的NFS服务中的目录共享设置情况:
Debian#showmount -e 192.168.1.151
Export list for localhost:
/tmp *
/home/test 192.168.1.*