NFS 服务器在Fedora 13的架设

     因为一个在做嵌入式开发的朋友在用NFS服务时遇到一些问题,让我给帮忙研究下,所用的系统为fedora13,在nfs挂载时总会出现问题。

     第一个问题大概是portmap没有反映,这个问题的解决其实很简单,因为他没有安装好portmap,因为没有网络,没法yum,开始上网找portmap,发现fedora13竟没有portmap的rpm包,猜想是改名了,费了点力气发现portmap现在被整合进了rpcbind包,再解决下依赖性问题安装上rpcbind,启动服务,portmap这个问题就这么解决了。

     原以为就这么结束了,结果又冒出一个新的问题,mount.nfs:access denied by server while mounting…这个google一下出来的东西就很多了,结果大多是ubuntu的解释,貌似一般都是网段什么的问题,但对fedora13一点帮助没有,在google半天没找到比较合适的解答后,进行抓包行动,结果看到NFS的版本为V4,在reply中有个allow,下面的值全为0,刚好符合Access deny,于是改搜索是否为版本问题,果然是版本问题,由于原文出处已不得查知,这里留下原文:

在使用fedora13 的nfs服务的时候,它的配置与以前有了一定的区别,这里把fedora13前的配置也列一下,安转nfs程序就不说了,在配置nfs的时候,只要在 /etc/exports文件里写入如:"/root/work/nfs 192.168.1.*(rw,sync,no_root_squash)“  保存后重启nfs服务就可以通过本地挂载测试了,但在fedora13中这样还不行,fedora13默认使用NFS4, 这时候挂载将会出下面的错误提示:
# mount -t nfs 192.168.1.103:/root/work/nfs /mnt
mount.nfs: access denied by server while mounting 192.168.1.103:/root/work/nfs

需要修改/etc/sysconfig/nfs文件,将
# Turn off v2 and v3 protocol support
#RPCNFSDARGS="-N 2 -N 3"
# Turn off v4 protocol support
RPCNFSDARGS="-N 4"    //这句前面的#去掉就可以了。

     如此解决了第二个问题,但Access deny的情况比较多,这种解决方案仅适用fedora13及后续版本。

     因为这样的问题,顺便研究了下nfs,nfs是用于文件共享的,类似网络映射,但主要用于linux或unix like系统之间进行文件共享。大概分为安装,设置与常用命令,这里也做点简单介绍:

     首先来说安装,nfs主要需要两个软件,rpcbind和nfs-utils,因为portmap已换为rpcbind,估计yum安装时也得yum install rpcbind (ubuntu 里貌似还是apt-get install portmap),建议用yum安装这两个软件包,没有网络的情况下可能比较麻烦,我在安装nfs-utils时发现了nfs-utils和nfs-utils-lib互相缺少的情况,只能强制安装了。简单介绍下portmap和nfs的关系,portmap服务是用于分配端口的,自身有固定的端口111,nfs没有固定的端口,就需要portmap给分配端口,因而网络请求关系大概是客户端向111端口请求nfs端口,portmap查询到分配给nfs的端口号交给客户端,客户端再根据获取的端口和nfs服务器进行连接。

     接下来就是nfs的设置,首先为了兼容性问题,对于fc13而言还是去出V4使用V3版本,如之前引用文中进行设置,接下来就是进行共享的文件设置,在文件共享中有个比较复杂的权限情况,建议去鸟哥的linux网站(http://linux.vbird.org/)看看,网络篇中的nfs服务器架设,有比较好的解释nfs的权限问题。这里简单介绍下/etc/exports文件的编写:

     /tmp 192.168.100.0/24(rw, no_root_squash)

     意味将本机的/tmp文件夹的内容共享给192.168.100整个网段内的主机,这些主机均具有读写权限,并且作为root用户进行文件操作,大概分为三段,第一段是服务器共享的目录,第二段是网络客户端的主机名(支持通配符)或主机ip名(段),紧接着的括号内的是此文件夹的共享权限,有ro(read only), rw(read write), sync, async,no_root_squash, root_squash, all_squash,详细设定与权限还请自己阅读查阅。

      再简单介绍下nfs的操作:

         portmap启动: /etc/init.d/rpcbind start

         nfs启动: /etc/init.d/nfs start

         查询共享的目录: showmount –e localhost

         装载和卸载共享目录:exportfs –arv 装载全部共享目录  exportfs –auv 卸载全部共享目录(此操作用于修改/etc/exports文件后,可以不用重启portmap和nfs使设定生效)

         客户端挂载(以/tmp为例):mount –t nfs IP:/tmp /home/nfs(本地目录)

     因为nfs的操作牵涉到权限问题,参考下鸟哥的解释会比较好的理解,比较懒的做法就是exports文件中加上no_root_squash权限.

     一般操作大概也就这些流程,这里只做简单介绍了,可能存在一些问题,还请指出。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值