zoukankan      html  css  js  c++  java
  • <转>CentOS 7 安装配置 NFS

    CentOS 7  安装配置 NFS

    环境

    nps 192.168.1.97

    client 192.168.1.98

    一、yum 安装

    yum -y install nfs-utils rpcbind

    nfs 的配置文件 /etc/expots

    默认为空

    vi /etc/exports

    /opt/test/ 192.168.1.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)

    二、使配置生效

    exportfs -r

    注:配置文件说明:

    /opt/test 为共享目录

    192.168.1.0/24  可以为一个网段,一个IP,也可以是域名,域名支持通配符 如: *.qq.com

    rw:read-write,可读写;

    ro:read-only,只读;

    sync:文件同时写入硬盘和内存;

    async:文件暂存于内存,而不是直接写入内存;

    no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。

    root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;

    all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;

    anonuid:匿名用户的UID值,可以在此处自行设定。

    anongid:匿名用户的GID值。

    三、启动 nfs

    service rpcbind start

    service nfs start

    chkconfig rpcbind on

    chkconfig nfs on

    四、客户端挂载:

    showmount -e 192.168.1.97            #查看可挂载

    Export list for 192.168.1.97:

    /opt/test          192.168.1.0/24

    客户端挂载

    mount -t nfs 192.168.1.97:/opt/test /mnt

    无提示 既为成功

    客户端在挂载的时候遇到的一个问题如下,可能是网络不太稳定,NFS默认是用UDP协议,换成TCP协议即可:

    mount -t nfs 192.168.1.97:/opt/test /mnt -o proto=tcp -o nolock

    ------------------------------------------------------以上来自linux.it.net.cn

    PS:报错:mount.nfs: access denied by server while mounting

    这两天在搭建嵌入式开发环境,配置好NFS服务器后,遇到了一个很纠结的错误
    使用 mount -t nfs 127.0.0.1:/home/lzgonline/rootfs /mnt 和 mount -t nfs 192.168.1.9:/home/lzgonline/rootfs /mnt 本机挂载nfs则没有问题,然而使用 mount -t nfs 192.168.3.12:/home/lzgonline/rootfs /mnt 时却出现了问题,导致开发板无法通过nfs挂载启动,其中192.128.3.12 和 192.128.1.9(即nfs服务器)之间建立了映射(DMZ)关系。
    mount.nfs: access denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs
    百度、谷歌了很久,大部分都说是权限设置有问题,其实文件夹权限都设为777了,权限上都没问题,hosts.deny和hosts.allow都保留默认设置,防火墙也关了,该设置的都设置了,但还是被拒绝,很是郁闷,就在一筹莫展的时候,通过查看一些linux技术论坛后逐渐找到了问题所在。
    首先使用命令查看出错日志文件
    [root@lzgonline init.d]# cat /var/log/messages | grep mount
    Jun 29 00:49:04 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 1689
    Jun 29 00:51:02 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 1710
    Jun 29 01:02:17 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 1916
    Jun 29 01:09:51 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 2157
    Jun 29 01:17:02 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 2318
     
    从出错日志可以看出,mount.nfs: access denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs 被拒绝的原因是因为使用了非法端口,功夫总没白费,终于在一个linux技术论坛上找到了答案:

    I googled and found that since the port is over 1024 I needed to add the "insecure" option to the relevant line in /etc/exports on the server. Once I did that (and ran exportfs -r), the mount -a on the client worked.

    //如果端口号大于1024,则需要将 insecure 选项加入到配置文件(/etc/exports)相关选项中mount客户端才能正常工作:

    查看 exports 手册中关于 secure 选项说明也发现确实如此

    [root@lzgonline init.d]# man exports

    secure,This  option requires that requests originate on an Internet port less than IPPORT_RESERVED (1024). This option is on by default. To turn it off, specify insecure.

    //secure 选项要求mount客户端请求源端口小于1024(然而在使用 NAT 网络地址转换时端口一般总是大于1024的),默认情况下是开启这个选项的,如果要禁止这个选项,则使用 insecure 标识

    修改配置文件/etc/exports,加入 insecure 选项

    /home/lzgonline/rootfs  *(insecure,rw,async,no_root_squash)

    保存退出

    然后重启nfs服务:service nfs restart

    -------------------------以上来自http://liuzhigong.blog.163.com/blog/static/17827237520115305226932/

    实际使用时,在message中没有看到 illegal port 相关日志。 但是加入 insecure配置后,问题解决

  • 相关阅读:
    jQuery---自定义动画 animate();
    jQuery---清空节点和删除节点
    HTML5与HTML4的区别
    前端开发CSS清除浮动的方法有哪些?
    关于为什么使用React新特性Hook的一些实践与浅见
    js 设计模式:观察者和发布订阅模式
    easyUI dataGrid主从表点击展开问题
    正则表达式
    JS高级---拷贝继承:把一个对象中的属性或者方法直接复制到另一个对象中
    vue-element-admin框架快速入门
  • 原文地址:https://www.cnblogs.com/Clisa/p/7064028.html
Copyright © 2011-2022 走看看