NFS服务器搭建
2010-07-05 17:53
204 查看
NFS服务器搭建
一.什么是NFS(Network FileSystem)
NFS 就是 Network FileSystem 的缩写,最早之前是由 Sun 这家公司所发展出来的。 它最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案。所以,您也可以简单的将他看做是一个档案服务器!有点类似微软的DFS服务器。可以让您的 PC 来将网络远程的 NFS 主机分享的目录,挂载到本地端的机器当中,在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分割槽一样!使用上面相当的便利!
二.什么是 RPC (Remote Procedure Call)
因为 NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些 port 来传输数据,因此, NFS 的功能所对应的 port 才没有固定住, 而是采用随机取用一些未被使用的小于 1024 的端口来作为传输之用。但如此一来又造成客户端想要连上服务器时的困扰, 因为客户端得要知道服务器端的相关端口才能够联机吧!
此时我们就得需要远程过程调用 (RPC) 的服务啦!RPC 最主要的功能就是在指定每个 NFS 功能所对应的端口号,并且回报给客户端,让客户端可以连结到正确的端口上去。 那 RPC 又是如何知道每个 NFS 的端口呢?这是因为当服务器在启动 NFS 时会随机取用数个端口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报客户端正确的端口, 所以当然可以让 NFS 的启动更为轻松愉快了!
三.NFS Server端的设定
所需要的套件
要设定好 NFS 服务器我们必须要有两个套件才行,分别是:
NFS 主程序:nfs-utils
RPC 主程序:portmap
1.portmap
就如同刚刚提的到,我们的 NFS 其实可以被视为一个 RPC 程序,而要启动任何一个 RPC 程序之前,我们都需要做好 port 的对应 (mapping) 的工作才行,这个工作其实就是『 portmap 』这个服务所负责的!也就是说, 在启动任何一个 RPC server 之前,我们都需要启动 portmap 才行!
nfs-utils
就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其它相关 documents 与说明文件、执行档等的套件!这个就是 NFS 的主要套件啦!一定要有喔!
--------------------------------------------------------------------------------
NFS 的套件结构
/etc/exports
这个档案就是 NFS 的主要设定档了!这个档案不一定会存在,您可能必须要使用 vi 主动的建立起这个档案.
/usr/sbin/exportfs
这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸载或重新分享等等.
/usr/sbin/showmount
exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源!
/var/lib/nfs/*tab
在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面,在该目录下有两个比较重要的登录档, 一个是 etab ,主要记录了 NFS 所分享出来的目录的完整权限设定值;另一个 xtab 则记录曾经连结到此 NFS 主机的相关客户端数据。
/etc/exports 的设定
[root@linux ~]# vi /etc/exports
/tmp 192.168.1.0/24(ro) localhost(rw) *.ev.ncku.edu.tw(ro,sync)
# [分享目录] [第一部主机(权限)] [可用主机名] [可用万用字符]
现在我们来设置几个。
[root@linux ~]# vi /etc/exports
/tmp *(rw,no_root_squash)
/home/public 192.168.0.0/24(rw) *(ro)
/home/test 192.168.0.100(rw)
启动 NFS
设定档搞定后,当然要开始来启动才行啊!而前面我们也提到过,NFS 的启动还需要 portmap 的协助才行。
![](http://img1.51cto.com/attachment/201007/5/1544917_1278323603RUM3.jpg)
NFS 的联机观察
Showmount:显示某部主机的 /etc/exports 所分享的目录数据。
[root@linux ~]# showmount [-ae] [hostname|IP]
参数:
-a :显示目前主机与客户端的 NFS 联机分享的状态;
-e :显示某部主机的 /etc/exports 所分享的目录数据。
![](http://img1.51cto.com/attachment/201007/5/1544917_1278323604bAFX.jpg)
四.NFS 客户端的设定
1.确认本地端已经启动了 portmap 服务!
![](http://img1.51cto.com/attachment/201007/5/1544917_12783236062Vif.jpg)
2.扫瞄 NFS 服务器分享的目录有哪些,并了解我们是否可以使用 (showmount)。
![](http://img1.51cto.com/attachment/201007/5/1544917_1278323607kSB6.jpg)
3.在本地端建立预计要挂载的挂载点目录 (mkdir),并利用 mount 将远程主机直接挂载到相关目录。使用df查看挂载点信息。
![](http://img1.51cto.com/attachment/201007/5/1544917_127832361236iJ.jpg)
五.无法挂载的原因分析
如果客户端就是无法挂载服务器端所分享的目录时,到底是发生什么问题?你可以这样分析看看:
1.使用者或客户端身份权限不符:
以上面的例子来说明,我的 /home/test 只能提供 192.168.0.0/24 这个网域,所以如果我在 192.168.0.2 这部服务器中,以 localhost (127.0.0.1) 来挂载时,就会无法挂载上:
[root@linux ~]# mount -t nfs localhost:/home/test /home/nfs
mount: localhost:/home/test failed, reason given by server: Permission denied
看到 Permission denied 了吧?没错啦~权限不符啦!如果确定您的 IP 没有错误,那么请通知服务器端,请管理员将你的 IP 加入 /etc/exports 这个档案中。
2.服务器或客户端某些服务未启动,比如Portmap或者是服务器端的 nfs 忘记开。
3.被防火墙档掉了:
这个在试验中比较容易被忽视,可以把防火墙关掉或者重新设定一下您的防火墙,这包含了两部份,包括 iptables 与 TCP_Wrappers !因为我们启动了 portmap ,这个东西有两个数据需要分享出来,一个是 port 111 需要提供出去,因此您的 iptables 规则当中,需要开放这个 port!
另外如果未设置信任网卡也会导致无法扫瞄到NFS 服务器分享的目录,如图所示,选中eth0即可。
![](http://img1.51cto.com/attachment/201007/5/1544917_12783236141tkS.jpg)
本文出自 “我的地盘” 博客,请务必保留此出处http://justdo.blog.51cto.com/1544917/344279
一.什么是NFS(Network FileSystem)
NFS 就是 Network FileSystem 的缩写,最早之前是由 Sun 这家公司所发展出来的。 它最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案。所以,您也可以简单的将他看做是一个档案服务器!有点类似微软的DFS服务器。可以让您的 PC 来将网络远程的 NFS 主机分享的目录,挂载到本地端的机器当中,在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分割槽一样!使用上面相当的便利!
二.什么是 RPC (Remote Procedure Call)
因为 NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些 port 来传输数据,因此, NFS 的功能所对应的 port 才没有固定住, 而是采用随机取用一些未被使用的小于 1024 的端口来作为传输之用。但如此一来又造成客户端想要连上服务器时的困扰, 因为客户端得要知道服务器端的相关端口才能够联机吧!
此时我们就得需要远程过程调用 (RPC) 的服务啦!RPC 最主要的功能就是在指定每个 NFS 功能所对应的端口号,并且回报给客户端,让客户端可以连结到正确的端口上去。 那 RPC 又是如何知道每个 NFS 的端口呢?这是因为当服务器在启动 NFS 时会随机取用数个端口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报客户端正确的端口, 所以当然可以让 NFS 的启动更为轻松愉快了!
三.NFS Server端的设定
所需要的套件
要设定好 NFS 服务器我们必须要有两个套件才行,分别是:
NFS 主程序:nfs-utils
RPC 主程序:portmap
1.portmap
就如同刚刚提的到,我们的 NFS 其实可以被视为一个 RPC 程序,而要启动任何一个 RPC 程序之前,我们都需要做好 port 的对应 (mapping) 的工作才行,这个工作其实就是『 portmap 』这个服务所负责的!也就是说, 在启动任何一个 RPC server 之前,我们都需要启动 portmap 才行!
nfs-utils
就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其它相关 documents 与说明文件、执行档等的套件!这个就是 NFS 的主要套件啦!一定要有喔!
--------------------------------------------------------------------------------
NFS 的套件结构
/etc/exports
这个档案就是 NFS 的主要设定档了!这个档案不一定会存在,您可能必须要使用 vi 主动的建立起这个档案.
/usr/sbin/exportfs
这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸载或重新分享等等.
/usr/sbin/showmount
exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源!
/var/lib/nfs/*tab
在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面,在该目录下有两个比较重要的登录档, 一个是 etab ,主要记录了 NFS 所分享出来的目录的完整权限设定值;另一个 xtab 则记录曾经连结到此 NFS 主机的相关客户端数据。
/etc/exports 的设定
[root@linux ~]# vi /etc/exports
/tmp 192.168.1.0/24(ro) localhost(rw) *.ev.ncku.edu.tw(ro,sync)
# [分享目录] [第一部主机(权限)] [可用主机名] [可用万用字符]
现在我们来设置几个。
[root@linux ~]# vi /etc/exports
/tmp *(rw,no_root_squash)
/home/public 192.168.0.0/24(rw) *(ro)
/home/test 192.168.0.100(rw)
启动 NFS
设定档搞定后,当然要开始来启动才行啊!而前面我们也提到过,NFS 的启动还需要 portmap 的协助才行。
![](http://img1.51cto.com/attachment/201007/5/1544917_1278323603RUM3.jpg)
NFS 的联机观察
Showmount:显示某部主机的 /etc/exports 所分享的目录数据。
[root@linux ~]# showmount [-ae] [hostname|IP]
参数:
-a :显示目前主机与客户端的 NFS 联机分享的状态;
-e :显示某部主机的 /etc/exports 所分享的目录数据。
![](http://img1.51cto.com/attachment/201007/5/1544917_1278323604bAFX.jpg)
四.NFS 客户端的设定
1.确认本地端已经启动了 portmap 服务!
![](http://img1.51cto.com/attachment/201007/5/1544917_12783236062Vif.jpg)
2.扫瞄 NFS 服务器分享的目录有哪些,并了解我们是否可以使用 (showmount)。
![](http://img1.51cto.com/attachment/201007/5/1544917_1278323607kSB6.jpg)
3.在本地端建立预计要挂载的挂载点目录 (mkdir),并利用 mount 将远程主机直接挂载到相关目录。使用df查看挂载点信息。
![](http://img1.51cto.com/attachment/201007/5/1544917_127832361236iJ.jpg)
五.无法挂载的原因分析
如果客户端就是无法挂载服务器端所分享的目录时,到底是发生什么问题?你可以这样分析看看:
1.使用者或客户端身份权限不符:
以上面的例子来说明,我的 /home/test 只能提供 192.168.0.0/24 这个网域,所以如果我在 192.168.0.2 这部服务器中,以 localhost (127.0.0.1) 来挂载时,就会无法挂载上:
[root@linux ~]# mount -t nfs localhost:/home/test /home/nfs
mount: localhost:/home/test failed, reason given by server: Permission denied
看到 Permission denied 了吧?没错啦~权限不符啦!如果确定您的 IP 没有错误,那么请通知服务器端,请管理员将你的 IP 加入 /etc/exports 这个档案中。
2.服务器或客户端某些服务未启动,比如Portmap或者是服务器端的 nfs 忘记开。
3.被防火墙档掉了:
这个在试验中比较容易被忽视,可以把防火墙关掉或者重新设定一下您的防火墙,这包含了两部份,包括 iptables 与 TCP_Wrappers !因为我们启动了 portmap ,这个东西有两个数据需要分享出来,一个是 port 111 需要提供出去,因此您的 iptables 规则当中,需要开放这个 port!
另外如果未设置信任网卡也会导致无法扫瞄到NFS 服务器分享的目录,如图所示,选中eth0即可。
![](http://img1.51cto.com/attachment/201007/5/1544917_12783236141tkS.jpg)
本文出自 “我的地盘” 博客,请务必保留此出处http://justdo.blog.51cto.com/1544917/344279
相关文章推荐
- ubuntu下搭建nfs服务器
- Ubuntu12.04搭建tftp&nfs服务器
- Exynos4412 NFS服务器搭建
- CENTOS 6.6 nfs 服务器搭建
- ubuntu下搭建nfs服务器
- 红帽linux企业版6虚拟机中搭建nfs服务器
- nfs服务器的搭建与管理
- NFS服务器搭建
- centos7下NFS服务器的搭建与配置
- Linux下nfs服务器搭建
- Red hat 下nfs服务器的搭建
- CentOS下搭建NFS服务器总结
- Ubuntu离线搭建NFS服务器
- ubuntu下搭建nfs服务器
- 利用阿里云搭建NFS服务器
- 二..linux开发之uboot移植(二)——网络命令ping开发搭建使用&tftp服务器的安装&nfs网络服务器的安装
- CentOS6.5下搭建NFS文件服务器
- NFS服务器搭建
- 搭建nfs文件服务器——超详细
- Ubuntu下搭建tftp、nfs服务器