网络文件系统(NFS)收藏网络文件系统(NFS)一、NFS简介1、NFS就是Network的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(sharefiles)——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看作一个文件服务器()。注意:一般而言,使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需要在unix-like和windows系统之间共享,那就得使用samba了。2、NFS是通过网络进行数据传输,那么NFS使用哪些端口呢,答案是⋯⋯不知道,因为NFS传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用RPC。其实,NFS运行在SUN的RPC(RemoteProcedureCall,远程过程调用)基础上,RPC定义了一种与系统无关的方法来实现进程间通信,由此,NFSServer也可以看作是RPCServer。正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定。比如:某个NFSClient发起NFS服务请求时,它需要先得到一个端口(port),所以它先通过portmap得到portnumber(不仅是NFS,所有的RPC服务程序启动之前,都需要先设定好portmap)。注意:在启动RPC服务(比如NFS)之前,需要先启动portmap服务。3、NFS允许系统将其目录和文件共享给网络上的其他系统。通过NFS,用户和应用程序可以访问远程系统上的文件,就像它们是本地文件一样。那么NFS最值得注意的优点有:(1)本地工作站可以使用更少的磁盘空间,因为常用数据可以被保存在一台机器上,并让网络上的其他机器可以访问它。(2)不需要为用户在每台网络机器上放一个用户目录,因为用户目录可以在NFS服务器上设置并使其在整个网络上可用。(3)存储设备如软盘、光驱及USB设备可以被网络上其它机器使用,这可能可以减少网络上移动设备的数量。二、与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/xtabNFS的记录文档:通过它可以查看有哪些Client连接到NFS主机的记录。下面这几个并不直接负责NFS,实际上它们是负责所有的RPC。5、/etc/default/portmap实际上,portmap负责映射所有的RPC服务端口,它的内容非常非常之简单。6、/etc/hosts.deny设定拒绝portmap服务的主机,即禁止访问的客户端IP列表。7、/etc/hosts.allow设定允许portmap服务的主机,即允许访问的客户端IP列表。三、NFS安装在主机上安装NFS服务软件,因为Debian/Ubuntu上默认是没有安装的。1、安装端口映射器portmap(可选)$sudoapt-getinstallportmap2、在终端提示符后键入以下命令安装NFS服务器$sudoapt-getinstallnfs-kernel-server3、安装NFS客户端(可选)$sudoapt-getinstallnfs-common注意:nfs-kernel-server和nfs-common都依赖于portmap。另外,在一些文档中提出还需要使用apt-get来手动安装NFS的客户端nfs-common,以及端口映射器portmap,但其实这是没有必要的,因为在安装nfs-kernel-server时,apt会自动把它们安装好。这样,宿主机就相当于NFSServer。同样地,目标系统作为NFS的客户端,需要安装NFS客户端程序。如果是Debian/Ubuntu系统,则需要安装nfs-common(第3步)。四、NFS配置1、配置portmap方法1:编辑/etc/default/portmap,将"-i127.0.0.1"去掉;方法2:$sudodpkg-reconfigureportmap,出现“正在设定portmap”软件包设置界面,对Shouldportmapbeboundtotheloopbackaddress?选择“否(No)”。2、配置/etc/hosts.deny禁止任何host(主机)能和你的NFS服务器进行NFS连接。在该文件中加入:###NFSDAEMONSportmap:ALLlockd:ALLmountd:ALLrquotad:ALLstatd:ALL3、配置/etc/hosts.allow允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP...