当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > Debian和UbuntuLinux的NFS配置介绍

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 Debian和UbuntuLinux的NFS配置介绍


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 53 ::
收藏到网摘: n/a

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/