可能的原因:
1、/etc/hosts里指定了IP--主机名,删之(建议不要擅自修改/etc/hosts);
2、可能是NFS服务器端/etc/exports设置的权限不对;
3、SELinux的问题:
首先记得查看是否已经开启了nfs服务:
ps -ef |grep nfs
如果没有开启的话记得先
service nfs start
NFS: reason given by server: Permission denied 收藏
NFS我是这样用的,首先在Linux服务器上启动NFS Server,其中/etc/exports中添加:
/opt/nfs 192.168.1.*(rw,sync,no_root_squash,no_all_squash)
注:上面写法是从合众达的SEED-DVS365 Development Software.pdf文档中照搬的。
然后在DVS365板子上直接挂载就可以了:
mount -t nfs 192.168.1.109:/opt/nfs /nfsclient/
如果出现下面的错误:
mount: RPC: Program not registered
那么可以通过重启Linux服务器端的nfsserver即可:
/etc/init.d/nfsserver restart
365板子上再次挂载就可以成功了。
但是今天却出了问题,365板子上一挂载就出现下面的错误:
mount: 192.168.1.109:/opt/nfs failed, reason given by server: Permission denied
Google了一下,发现有类似的解答,如下:
============================================
回答一:
去掉/etc/hosts里添加的那些IP/主机名对就可以了。
============================================
回答二:
今天同事跟我说网站的图片不能显示了,后来检查的时候发现一个NFS的怪异现象。
在mount nfs目录时出现错误:
mount -t nfs 192.168.1.172:/nfs/mp3/mp3files /web/mp3/mp3files
mount: 192.168.1.172:/nfs/mp3/mp3files failed, reason given by server: Permission denied
我原来的/etc/exportfs是这样的:
[root@ha1 nfs]# cat /etc/exports
/nfs/mp3/mp3files 192.168.1.*(rw,async)
一直都用的好好的,其它的机器通过内网IP来mount这台上面的数据。
所以我想应该是我做了什么造成的,因为之前我看到/var/log/messages
mountd[3082]: Fake hostname rs0.xxxxxxcom for 192.168.1.69 - forward lookup doesn't exist
以为nfs警告说我没有做域名反解,所以我就在我的域名服务器做把192.168.1.69做了一下反解。并增加了rs0.xxxxx.com这个域名到192.168.1.69。做完之后就没有再出现上面的错误了,但是上面说的出现不能mount的情况。
在网上查了一些资料,有人说把/etc/exports换成域名试试,所以我就改成了:
[root@ha1 nfs]# cat /etc/exports
/nfs/mp3/mp3files *.xxxxxx.com(rw,async)
再mount,发现正常,没有问题了。
后来又查了一些相关资料,才知道:
nfs server接到客户端的mount时,会先客户的IP做反解成域名,用域名(注意是用域名而不是IP)去和/etc/exports做比较,如果匹配不成功会失败。
而我做了域名反解后,并没有更新/etc/exports内的IP为域名。所以匹配不到对应的域名,自然就出现mount: 192.168.1.172:/nfs/mp3/mp3files failed, reason given by server: Permission denied的错误了。
之前用IP没有问题是因为在域名不能反解的时候还是用IP去匹配的。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/talent258/archive/2010/07/23/5758661.aspx
这也是Rachel提到的,首先是因为因为系统自动挂载会报not route to host的错误,我当时说,那要不你把客户端ip和对应的主机名写入到/etc/hosts文件里好了。
于是所有的机器都执行了这个操作,结果发现现在干脆mount不上来了,报的错误就是标题所说的:
mount: 192.168.1.100:/home/test failed, reason given by server: Permission denied
后来去掉/etc/hosts里添加的那些IP/主机名对就可以了。
只是那个not route to host的问题还是没有解决。
今天上午已经解决了not route to host的问题,主要原因是网络还没有完全准备好。
对于增加了IP/主机名对后,mount报错的,当时我的猜测是因为NFS会先把IP地址转成对应的主机名,然后用这个主机名去匹配/etc/exports文件,而该文件都是设置IP段的,当然就没有权限mount。通过查阅资料和测试,证实了我的这个猜测。
另外才测试过程中,如果使用主机名或者全质量主机名(FQDN)来mount NFS 文件系统,会比单纯使用IP要快得多。
因此,如果使用NFS服务的局域网内添加一个DNS服务,然后采用全质量主机名的方式来访问,应该效果会好得多。
有关NFS的资料,下面两个链接推荐大家看看
这也是Rachel提到的,首先是因为因为系统自动挂载会报not route to host的错误,我当时说,那要不你把客户端ip和对应的主机名写入到/etc/hosts文件里好了。
于是所有的机器都执行了这个操作,结果发现现在干脆mount不上来了,报的错误就是标题所说的:
mount: 192.168.1.100:/home/test failed, reason given by server: Permission denied
后来去掉/etc/hosts里添加的那些IP/主机名对就可以了。
只是那个not route to host的问题还是没有解决。
今天上午已经解决了not route to host的问题,主要原因是网络还没有完全准备好。
对于增加了IP/主机名对后,mount报错的,当时我的猜测是因为NFS会先把IP地址转成对应的主机名,然后用这个主机名去匹配/etc/exports文件,而该文件都是设置IP段的,当然就没有权限mount。通过查阅资料和测试,证实了我的这个猜测。
另外才测试过程中,如果使用主机名或者全质量主机名(FQDN)来mount NFS 文件系统,会比单纯使用IP要快得多。
因此,如果使用NFS服务的局域网内添加一个DNS服务,然后采用全质量主机名的方式来访问,应该效果会好得多。
有关NFS的资料,下面两个链接推荐大家看看
今天在用nfs mount时报错,输入命令为:mount -t nfs 远端ip:/opt/kkk /opt/kkk检查权限并没有问题,到google搜索,说是ip没有做反向解析,或是portmap 服务没开启和/etc/exports 没有添加允许的ip,但这些我都检查没有问题,且其它台服务器mount时并没有问题,当时想那一定出现在这台电脑客户端了。
mount: ip:/opt/kkkfailed, reason given by server: Permission denied
后来检查日记发现如下,说是端口的问题,后来在/etc/exports加入insecure选项测试成功mount了,
/opt/kkk.122.226.xxx(rw,insecure)
insecure选项允许NFS客户端不使用NFS保留的端口,呵呵,问题解决!!
Jun 9 04:04:42 localhost mountd[8948]: refused mount request from 122.226.xxxfor /opt/kkk(/opt/kkk): illegal port 1375
Jun 9 04:05:52 localhost mountd[8948]: refused mount request from 122.226.xxxfor /opt/kkk(/opt//kkk): illegal port 3110
Jun 9 05:09:49 localhost mountd[8948]: refused mount request from 122.226.xxxfor /opt/ejabberd/conf (/opt/ejabberd/conf): illegal port 2508