NFS挂载问题:mount.nfs: access denied by server while mounting 192.168.1.100:/home/rootfs
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)需启动的服务和需安装的软件
- 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注册。
- NFS 服务器需要安装nfs主程序,nfs-utils和rpc主程序 portmap
(2)exports服务器的方法:
- 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服务器,会变为匿名用户,拥有匿名用户权限。也可不控制。
- 编辑/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这个域里的电脑读写这个共享文件夹。
- 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,但用户只能读取资料。
*/var/lib/nfs/tab //存放日志文件.etab记录NFS共享出来的目录完整权限设置。 .xtab记录曾经连接引NFS的客户机数据
rpcinfo [-p] [ip |电脑名] //查看RPC服务的注册状态
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相关推荐
- 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 ...
- 挂载nfs提示:mount.nfs: access denied by server while mounting...
出现此类错误原因大致为: 权限问题 防火墙机制问题 共享配置文件问题 搭建好nfs服务后,在client端进行挂载时,提示: [root@web1 media]# mount -t nfs 192.1 ...
- NFS mount.nfs: access denied by server while mounting 一个解决办法
mount.nfs: access denied by server while mounting 一个解决办法 2011-06-30 17:22:06| 分类: 技术探讨 | 标签:linu ...
- NFS共享服务挂载时出现“access denied by server while mounting”的解决方法
笔者用的Linuxf发行版本为Centos6.4,以下方法理论上讲对于Fedora, Red Hat均有效: 搭建好NFS服务后,如果用以下的命令进行挂载: # mount -t nfs 172.16 ...
- access denied by server while mounting
在开发板上挂在nfs服务器的时候, 遇到access denied by server while mounting这个错误, 可能的原因: 开发板的ip地址不允许挂载到NFS服务器上 解决办法: 在 ...
- nfs挂载出错:mount.nfs: access denied by server while mounting
这个问题就是服务器不允许客户端去挂载,那么修改服务端的权限 $ sudo vi /etc/hosts.deny 文本末添加 ### NFS DAEMONS portmap: ALL lockd: AL ...
- (NFS)mount.nfs: access denied by server while mounting localhost:/home/xuwq/minilinux/system
https://blog.csdn.net/xuwq2015/article/details/50147151?locationNum=9
- 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 ...
- linux查看nfs挂载信息,Linux NFS挂载
Linux NFS挂载 一.NFS挂载 192.25.10.101/home/sharedata/azkaban/ODS_HS08 挂载到 192.25.10.102/home/data_azkaba ...
- NFS挂载出现“mount can‘t find * in /etc/fstab“错误
最近通过nfs挂载ubuntu目录到开发板的时候,一直出现"mount: can't find 192.168.3.34:/share /mnt in /etc/fstab"错误. ...
最新文章
- docker-compose编排最佳实战(多服务)
- Android ViewTreeObserver简介-------------转
- 使用Mybatis的Generator可能导致的一个错误
- 小程序访问本地服务器拒绝访问,文件夹拒绝访问的原因与解决办法
- 搭建Hadoop平台(一)之配置用户名及hosts文件
- js 终止 for 循环
- 我的微博,三层嵌套,
- python安装win32com模块
- 机器学习中的数据及其处理
- 怎么用imp命令把dmp文件从本地导入到远处的数据库服务器,Oracle 数据库导入导出dmp文件...
- 四大组件之Activity(下)
- 记一次失败的阿里巴巴电话面试
- Excel2003和Excel2007对下拉选择和下拉级联选择的操作以及java程序的调用
- r语言是高级编程语言_R编程语言介绍
- 网站访客QQ获取系统
- 分位数回归—R语言实现
- No power supply specified for netVCC in Power Rail Confiquration.
- python相关pyc文件的编译、运行和反编译
- basler 虚拟相机的使用
- 如何安装Endnote以及如何在word2013中关联endnote