设为首页 收藏本站
查看: 398|回复: 0

[经验分享] Ubuntu上NFS的安装配置

[复制链接]

尚未签到

发表于 2016-4-21 08:07:29 | 显示全部楼层 |阅读模式
UbuntuNFS的安装配置
 
       NFS用于Linux主机访问网络中其他Linux主机上的共享资源。NFS的原理是在客户端上通过网络将远程主机共享文件系统以挂载(Mount)的方式加入本机的文件系统,之后的操作就如同在本机上一样。
 
NFS服务器(宿主机)
 
1.安装NFS
Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:
                      $ sudo apt-get install nfs-kernel-server

(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)
这样,宿主机就相当于NFS Server。
 
2. 配置NFS
1)配置portmap
方法1: 编辑/etc/default/portmap, 将 -i 127.0.0.1 去掉.

方法2:             
       $ sudo dpkg-reconfigure portmap

对Should portmap be bound to the loopback address? 选N.

2)配置/etc/hosts.deny
                                      $ sudo gedit /etc/hosts.deny
(禁止任何host(主机)能和你的NFS服务器进行NFS连接),加入:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
 
3) /etc/hosts.allow
                                     $ sudo gedit /etc/hosts.allow
允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.1开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。
### NFS DAEMONS
portmap: 192.168.1.
lockd: 192.168.1.
rquotad: 192.168.1.
mountd: 192.168.1.
statd: 192.168.1.
 
        蓝色文字可略过
 
起用保护机制
    上面设置了只要在192.168.1.*这个网段的所有IP地址用户都可以访问共享目录,但我只想让一个IP地址访问,比如 192.168.1.101那么就可以这样设置了。
可以通过设定/etc/hosts.deny和/etc/hosts.allow文件来限制网络服务的存取权限。


***/etc/hosts.deny***
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL


***/etc/hosts.allow***
portmap:192.168.1.101
lockd:192.168.1.101
mountd:192.168.1.101
rquotad:192.168.1.101
statd:192.168.1.101
    
      同时使用这两个文件就会使得只有ip为192.168.1.101的机器使用NFS服务。你的target board的ip地址设定为192.168.1.101,这样就可以了。

    /etc/hosts.deny 和 /etc/hosts.allow 设置对portmap的访问. 采用这两个配置文件有点类似"mask"的意思. 现在/etc/hosts.deny中禁止所有用户对portmap的访问. 再在/etc/hosts.allow 中允许某些用户对portmap的访问。
 
4)重启portmap daemon
     每次对/etc/hosts.deny 和 /etc/hosts.allow两文件的修改后都要重启portmap daemon。不然修改无效。
$ sudo /etc/init.d/portmap restart

 
5)配置/etc/exports
    NFS挂载目录及权限由/etc/exports文件定义。
                                              $sudo gedit /etc/exports
    比如我要将将我的home目录中的/home/lin/NFSshare目录让192.168.1.*的IP共享, 则在该文件末尾添加下列语句:
        /home/lin/NFSshare  192.168.1.*(rw,sync,no_root_squash)
      然后保存退出。


/home/lin/NFSshare就表示共享目录,当然,你可以随便换成自己喜欢的目录。
192.168.1.*:前面三位是你主机(NFS客户端)的ip地址(本机终端ifconfig命令就可以获得本机的ip地址)。
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。
 
6)重启nfs服务
$ sudo /etc/init.d/nfs-kernel-server restart

  
    执行这个命令的时候可能会提示一些错误,如下:
 * Stopping NFS kernel daemon                                            [ OK ]
 
 * Unexporting directories for NFS kernel daemon...                      [ OK ]
 
 * Exporting directories for NFS kernel daemon...                               exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.*:/home/lin/NFSshare".
 
  Assuming default behaviour ('no_subtree_check').
 
  NOTE: this default has changed since nfs-utils version 1.0.x
                                                                                                                   [ OK ]
 * Starting NFS kernel daemon                                             [ OK ]
 
       我不知道具体原因,不用管,不影响后面的使用。
 
注意:每次对/etc/exports文件的修改,都要重启一下nfs服务。
 
7nfs服务器端测试
      由于nfs服务器端默认是安装了nfs客户端(nfs-common)的,所以可以在服务器端挂载共享文件夹作测试。
                        $sudo mount 192.168.1.160:/home/lin/NFSshare /mnt

192.168.1.160是nfs服务器端IP地址,可以在服务器端终端通过命令ifconfig获得。
 


  
      有可能会出现错误
$mount 192.168.1.160:/home/lin/NFSshare /mnt
mount.nfs: access denied by server while mounting 192.168.1.160:/home/lin/NFSshare
      在nfs客户端执行上述命令,出现同样的错误。这个错误的意思是客户端地址不在NFS所允许的地址范围之内,但无论服务器端还是客户端IP都是192.168.1.*啊!
 
解决办法
      重新$sudo gedit /etc/exports,将“ 192.168.1.* ”换成“*”,要注意就这一个星星哦!修改完之后不要忘了重启一下nfs服务
$ sudo /etc/init.d/nfs-kernel-server restart

   
       这样修改之后,就可以看到/mnt文件下共享了/home/lin/NFSshare文件夹里的内容。测试完毕,要卸载nfs的挂载
                               $sudo umount /umt
 
NFS客户端
1.安装NFS
     客户端需要安装nfs客户端程序(nfs-common)
$ sudo apt-get install nfs-commmon    
 
 
2.nfs挂载
     挂载服务器端共享文件夹(假设服务器端IP地址为:192.168.1.160,将/home/lin/NFSshare挂载到/mnt)
$ sudo mount 192.168.1.160:/home/lin/NFSshare /mnt
 
      查看NFS server的export list
$ showmount -e 192.168.1.160
Export list for 192.168.1.160:
/home/lin/NFSshare 192.168.1.139
  
 
 

 
$ df 看看结果



       打开文件夹/mnt,可以看到实际访问到了服务器端的/home/lin/NFSshare文件夹
 

 
  
       使用完NFS后可以卸载NFS挂载。
$ sudo umount /mnt
 
NFS相关的几个文件
1, /sbin/exportfs
    维护NFS的资源共享. 可以通过它重新设定 /etc/exports 的共享目录, 卸载NFS Server共享的目录或者重新共享等.

2, /usr/sbin/showmount
    用在 NFS Server 端,而 showmount 则主要用在 Client 端. showmount 可以用來查看 NFS 共享的目录资源.

3, /var/lib/nfs/xtab
    NFS的记录文档: 通过它可以查看有哪些Client 连接到NFS主机的记录.

下面这几个并不直接负责NFS, 实际上它们负责所有的RPC
4, /etc/default/portmap
    实际上, portmap负责映射所有的RPC服务端口, 它的内容非常非常之简单(后面详述)

5, /etc/hosts.deny
    设定拒绝portmap服务的主机

6, /etc/hosts.allow
    设定允许portmap服务的主机
 
7, /etc/exports
    对NFS卷的访问是由exports来批准, 它枚举了若干有权访问NFS服务器上文件系统的主机名。/etc/exports实际上就是nfs服务器的核心配置文件了. 鸟哥的Linux私房菜列举了一些exports文件的写法。
      除了编辑/etc/exports文件这种方法外,Ubuntu还提供图形管理工具——“共享的文件件”,可以用它来进行NFS服务器的维护和设置工作。
(1)打开“共享的文件件”
                第一种方法:“系统”——“系统管理”——“共享的文件夹”(我的Ubuntu8.10没有)
                第二种方法:终端   $ shares-admin
 

 
(2)要想修改,首先就要“解锁”。
 


(3)可以看到之前/home/lin/NFSshare在列表内,其实“共享的文件夹”不过是/etc/exports图形化。
 

 
(4)点“添加”添加一个新的共享文件夹
 
  


         选择“Unix网络(NFS)“。因为这是Linux之间的共享;如果是Linux和Windows之间的共享,选择“Windows网络(SMB)”。
 
(5)再点“添加“,可以设置”指定主机名”,“指定IP地址”,“指定网络”。
   

  (6)设置完毕之后就可以关闭“共享的文件夹”,打开/etc/exports可以看到,相应的语句加入到了文件里。
  
 
 
参考资料:
1)在ubuntu7.10下配置nfs并挂载共享目录到目标板上
http://hi.baidu.com/lmzzyw/blog/item/a1582e3552985b1590ef39e1.html
2)Ubuntu上nfs的安装配置
http://hi.baidu.com/wangy0919/blog/item/79e726c68c1efc199d163d98.html
3)ubuntu测试本机nfs出错:mount.nfs:access denied by server while mounting
http://hi.baidu.com/dsfire/blog/item/100386f0b98b52a7a40f52c6.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-206717-1-1.html 上篇帖子: [转载]Ubuntu下安装卸载桌面系统 下篇帖子: 安装Ubuntu硬盘分区图文教程(详细)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表