1.问题描述:

虚拟机上配置并开启好NFS服务器后,为了检测能否成功挂载,所以先在虚拟机上安装一个NFS客户端(sudo apt-get install nfs-common)进行自测。但在执行挂载命令sudo mount -t nfs <Linux主机ip地址>:/nfs_root /mnt -o nolock时提示如下错误:mount.nfs: access denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs

2. 问题定位:

  • 首先使用命令查看出错日志文件
[leon@ubuntu]# cat /var/log/messages | grep mountJun 20 00:49:04 lzgonline mountd[1644]: refused mount request from 192.168.43.169 for /root_fs (/root_fs): illegal port 1689Jun 29 00:51:02 lzgonline mountd[1644]: refused mount request from 192.168.43.169 for /root_fs (/root_fs): illegal port 1710Jun 29 01:02:17 lzgonline mountd[1644]: refused mount request from 192.168.43.169for /root_fs (/root_fs): illegal port 1916

从出错日志可以看出,被拒绝的原因是因为使用了非法端口。

  • 查看 exports 手册中关于 secure 选项说明也发现确实如此
[leon@ubuntu]# 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 标识。

3. 解决办法:

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

即添加如下语句:

/root_fs  *(insecure,rw,async,no_root_squash)
  • 重启nfs服务:
sudo /etc/init.d/nfs-kernel-server start

4.NFS知识拓展

4.1 NFS服务器的配置

(1)需启动的服务和需安装的软件

  1. NFS服务器必须启动两个daemons服务:rpc.nfsd和rpc.mountd
    rpc.nfsd:用来管理客户端PC是否可以登录。类似于windows中的共享权限。
    rpc.mountd:用来管理客户端pc能够使用的文件安全权限。 如windows中的共享安全权限。

RPC:因为NFS支持的功能很多,所以NFS的功能对应的端口才无法固定,而是采用小于1024的随机端口。但客户端需要得知服务器的端口才能联机,此时就需要启用RPC服务。RPC的功能就是指定每个NFS功能的端口号。并传信息给客户端,让客户端可以连到正确的端口上。

服务器在启动NFS时会随机取用数个端口,并主动向RPC注册,因此RPC知道每个NFS功能对应的端口。RPC用111端口监听客户端的请求,并应答正确的端口。启动NFS前,RPC就要先启动了,否则NFS会无法向RPC注册。

  1. NFS 服务器需要安装nfs主程序,nfs-utils和rpc主程序 portmap

(2)exports服务器的方法:

  1. NFS文件存取权限
    因为NFS没有验证机制,当客户端用户访问NFS服务器的共享文件夹时会遇到的权限情况:
  • NFS服务器端用户列表中有与客户端用户名相同的用户名时,客户端可以直接存取共享文件夹。例:客户端用户为khp,而nfs服务器用户列表(/etc/passwd)中也有khp这个用户名,则将拥有KHP权限。
  • 当访问NFS服务器的客户端用户UID与服务器端 UID相同,但用户名却不相同时,客户端将拥有与服务器端UID 相同但不同用户的权限。
    例:客户端为 501UID,用户名为 khp的帐号访问NFS服务器。NFS服务器用户列表中(/etc/passwd)有uid为501 ,但用户名为pla的用户,所以客户端khp用户可以拥有NFS服务器pla相同权限。
  • 如果客户端用户UID在NFS服务器端用户列表中不存在时,则以匿名用户的权限访问。即nobody的用户。
  • 如果客户端用户为root用户,因为每台电脑都有root用户,如果不作控制,NFS服务器将会很危险,会被客户端全部控制。所以默认root用户名的客户端访问NFS服务器,会变为匿名用户,拥有匿名用户权限。也可不控制。
  1. 编辑/etc/exports文件(此文件不一定存在,如不存在就手工建立)

/etc /exports的格式:共享目录 允许访问的电脑 (选项)

  • 共享目录:即nfs服务器准备共享的目录

  • 允许访问的电脑:即允许访问这个共享的客户端有哪些。可用电脑名、IP地址,还可以用通配符。

  • 选项:

    • (1) rw //读写。客户端拥有读写的权限。
    • (2) ro //只读 客户端只有读的权限。
    • (3) no_root_squash //root用户可访问,不变成匿名用户,即root用户可以以root用户的权限访问NFS服务器的共享资源。
    • (4) root_squash //root用户变成匿名用户
    • (5) all_squash //所有用户都变成匿名用户
    • (6) anonuid
    • (7) anongid //所有匿名用户的UID或组ID都变为后面设定的UID或GID的权限。因为所有在NFS服务器用户列表中没有用户名的都会匿名用户,这里设定这些匿名用户的用户权限。
    • (8) sync //同步到硬盘
    • (9) async //数据存放到内存而不是直接写到硬盘

例:

/mnt/export www.elitek.com (rw) //  /mnt/export这具目录只允许www.elitek.com这台电脑读写,且允许所有其他用户读写权限。(rw)前面有空格。
/mnt/export *.elitek.com(rw)   //允许所有elitek.com这个域里的电脑读写这个共享文件夹。
  1. exportfs命令。 可以更改设置 (命令目录/usr/sbin/exportfs)

格式:exportfs [-avu][-o option] [director]

​ -a:把 exprotfs里的所有路径都共享出去

​ -u:把export出去的路径取消

​ -v:在export时,共享显示到屏幕

​ -o option :即一些选项

​ -r :重新挂载exports里的设置

例:

exportfs -a ro /tmp/user  //即把/tmp/user目录全部exports,但用户只能读取资料。
  1. */var/lib/nfs/tab //存放日志文件.etab记录NFS共享出来的目录完整权限设置。 .xtab记录曾经连接引NFS的客户机数据

  2. rpcinfo [-p] [ip |电脑名] //查看RPC服务的注册状态

  3. netstat -ultn 查看开放了哪些端口

4.2 客户端的端设置

作为NFS客户端需要先运行 nfslock和 portmap服务。

/etc/init.d/nsflock start
/etc/init.d/portmap start

并且有几种挂载方法

(1)命令方式

mount 命令挂载:

showmount -e  [nfs服务器电脑名或ip地址 ]  //查看nfs服务器的可用共享目录
mount nfs主机名:nfs共享目录 挂载到本机的目录  //把nfs服务器共享的目录挂载到本机。主机名外还可用IP地址

例:

mount 192.168.9.1:/tmp/export /tmp/export  //即把192.168.9.1nfs服务器共享的  /tmp/export目录,挂载到本机的 /tmp/export目录上。mount -t nfs -o time=20 www.linux.com/home/khp  /tmp/export //把远程nfs服务器的/home/khp 挂载到本机的/tmp/export目录下。最长响应时间为20秒。

(2)编辑 /etc/fstab文件挂载

/etc/fstab文件详解在文件系统管理中有说明

  • 格式: NFS服务器及共享目录 挂载到本地的目录 文件格式 选项
www.elitek.com:/home/project   /tmp/export  ro  //把 www.elitek.com这对口NFS服务器上的/home/project目录挂载到本机的/tmp/export目录上,且为只读。格式为nfs
  • 打开文件夹。此时输入 mount /tmp/export 即可以打开挂载的文件

(3)autofs来挂载nfs文件系统

只在文件系统被访问时才被挂载。

  • 先在 /etc/auto.master中定义挂载点
  • 再在 auto.master中定义的 /etc/auto.dirctory 中定义目录的总挂载点。

即在系统文件 /etc/auto.master中先定义一个总的总挂载点。 然后依这个文件中定义的总挂载点文件,再设置详细挂载点。

例:

vi  /etc/auto.master

编辑这个文件:

/misc /etc/auto.khp -timeout 60  //即/etc/auto.khp中的文件将挂载到  /misc目录下

再编辑: vi /etc/auto.khp文件,定义挂载点。

myproject  -rw,soft,intr  www.elitek.com:/home/project
//即把NFS服务器 www.elitek.com:/home/project共享目录,挂载到本机的  /misc/myproject目录下。

注意: /misc/myproject目录是动态的,不是实际存在的,只是在访问时这个目录才会产生。退出就消息。但 /misc目录需存在。

当防火墙开着时,有时就无法访问,可用 /etc/rc.d/init.d/iptables stop 停用防火墙,或用 iptable命令开放NFS的端口。

oject共享目录,挂载到本机的 /misc/myproject目录下。


>  注意:  /misc/myproject目录是动态的,不是实际存在的,只是在访问时这个目录才会产生。退出就消息。但 /misc目录需存在。
>
> 当防火墙开着时,有时就无法访问,可用 /etc/rc.d/init.d/iptables stop 停用防火墙,或用 iptable命令开放NFS的端口。参考文献:[NFS挂载问题 mount.nfs: access denied by server while mounting](https://www.cnblogs.com/shangbolei/p/4372057.html)

NFS挂载问题:mount.nfs: access denied by server while mounting 192.168.1.100:/home/rootfs相关推荐

  1. k8s NFS挂载出现 mount.nfs: access denied by server while mounting 192.168.153.128:/nfs/data

    ### pod 一直处于pending状态 root@ubuntu:/opt/module/k8s# kubectl get pods -n nfs-clientNAME READY STATUS R ...

  2. 挂载nfs提示:mount.nfs: access denied by server while mounting...

    出现此类错误原因大致为: 权限问题 防火墙机制问题 共享配置文件问题 搭建好nfs服务后,在client端进行挂载时,提示: [root@web1 media]# mount -t nfs 192.1 ...

  3. NFS mount.nfs: access denied by server while mounting 一个解决办法

    mount.nfs: access denied by server while mounting 一个解决办法   2011-06-30 17:22:06|  分类: 技术探讨 |  标签:linu ...

  4. NFS共享服务挂载时出现“access denied by server while mounting”的解决方法

    笔者用的Linuxf发行版本为Centos6.4,以下方法理论上讲对于Fedora, Red Hat均有效: 搭建好NFS服务后,如果用以下的命令进行挂载: # mount -t nfs 172.16 ...

  5. access denied by server while mounting

    在开发板上挂在nfs服务器的时候, 遇到access denied by server while mounting这个错误, 可能的原因: 开发板的ip地址不允许挂载到NFS服务器上 解决办法: 在 ...

  6. nfs挂载出错:mount.nfs: access denied by server while mounting

    这个问题就是服务器不允许客户端去挂载,那么修改服务端的权限 $ sudo vi /etc/hosts.deny 文本末添加 ### NFS DAEMONS portmap: ALL lockd: AL ...

  7. (NFS)mount.nfs: access denied by server while mounting localhost:/home/xuwq/minilinux/system

    https://blog.csdn.net/xuwq2015/article/details/50147151?locationNum=9

  8. mount: mounting 192.168.1.141:/root/rootfs on /opt failed: Permission denied

    ubuntu14.04 1.vi /etc/exports 检查设置的文件夹和挂载的文件夹是否一致 另外还需要查看文件夹的权限 2.$ sudo /etc/init.d/nfs-kernel-serv ...

  9. linux查看nfs挂载信息,Linux NFS挂载

    Linux NFS挂载 一.NFS挂载 192.25.10.101/home/sharedata/azkaban/ODS_HS08 挂载到 192.25.10.102/home/data_azkaba ...

  10. NFS挂载出现“mount can‘t find * in /etc/fstab“错误

    最近通过nfs挂载ubuntu目录到开发板的时候,一直出现"mount: can't find 192.168.3.34:/share /mnt in /etc/fstab"错误. ...

最新文章

  1. docker-compose编排最佳实战(多服务)
  2. Android ViewTreeObserver简介-------------转
  3. 使用Mybatis的Generator可能导致的一个错误
  4. 小程序访问本地服务器拒绝访问,文件夹拒绝访问的原因与解决办法
  5. 搭建Hadoop平台(一)之配置用户名及hosts文件
  6. js 终止 for 循环
  7. 我的微博,三层嵌套,
  8. python安装win32com模块
  9. 机器学习中的数据及其处理
  10. 怎么用imp命令把dmp文件从本地导入到远处的数据库服务器,Oracle 数据库导入导出dmp文件...
  11. 四大组件之Activity(下)
  12. 记一次失败的阿里巴巴电话面试
  13. Excel2003和Excel2007对下拉选择和下拉级联选择的操作以及java程序的调用
  14. r语言是高级编程语言_R编程语言介绍
  15. 网站访客QQ获取系统
  16. 分位数回归—R语言实现
  17. No power supply specified for netVCC in Power Rail Confiquration.
  18. python相关pyc文件的编译、运行和反编译
  19. basler 虚拟相机的使用
  20. 如何安装Endnote以及如何在word2013中关联endnote

热门文章

  1. 打印程序在计算机上的应用程序,修复无法在计算机上运行的后台打印程序服务的操作步骤...
  2. 浅夏,绿色延伸,就连邻家墙角的蔷薇也羞红了脸
  3. html中form表单的使用方法和介绍
  4. 计算机网络求校验码,计算机网络课程设计校验码的计算
  5. 菜鸟学院~全球首个活体机器人诞生:可编程,会自愈,由超级计算机设计
  6. 居于canvas的原生js抽奖小程序
  7. 跳转gridview
  8. ROS中的diagnostics模块
  9. activiti-会签任务
  10. 很好的东子(干货很多)--把一个函数变成全局的方法及slideToggle()