晚上在用ssh传输文件时,突然想到了用nfs的文件传输方法,以前配置过,但忘了,就想用下,练练手,结果很遗憾的事发生了,这东西足足花了我一个多小时才连接上。所以为了以后不出现这种浪费时间的事情再次出现,所以把这一个多小时做的事写下来,免得下次又在同一个地方浪费时间。
第一步:修改文件/etc/exports文件
/home/s123/ *(rw,sync,no_root_squash)
我耽误的时间主要还是在这里
开始时我是这样设置的(本虚拟机IP为192.168.1.10)
/home 192.168.1.10(rw,sync,no_root_squash)
这样设置时我在虚拟机上测试是正确的,但是在目标机挂接虚拟机时就出现这样的错误
mount: 192.168.1.10:/home failed, reason given by server: Permission denied
在虚拟机上挂接操作:
mount -t nfs 192.168.1.10:/home /mnt
这样就把整个home目录挂接到mnt目录下了
解挂umount /mnt
为什么虚拟机上挂接时就出错呢,这是一个网友的回答,感觉说的有点道理
今天同事跟我说网站的图片不能显示了,后来检查的时候发现一个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去匹配的。
补充:看来哥还是没深入理解啊,今天挂接时提示超时,就是挂接不上,结果百度一下,什么都不用该把挂机命令写成这个就行了
mount -o nolock 192.168.1.10:/home/shentuhongfeng /mnt
这样就ok了