在NFS客户端执行:showmount -e
报这个错误:
解决方法
网上大部分都是重启nfs和rpcbind的服务
systemctl restart nfs-utils systemctl restart rpcbind
操作后并没有正常,后面发现在了一个操作就正常了
systemctl restart rpcbind systemctl restart nfs-server systemctl restart nfs-utils
********************************************
mount -t nfs 192.168.16.126:/home/share /home/nfsshare
解决方案:重启nfs和rpcbind的服务
systemctl restart rpcbind systemctl restart nfs-server systemctl restart nfs-utils
********************************************
systemctl stop rpcbind.service
在此同时查看rpcbind.sock仍然处于活动状态
netstat -anlp | grep -i rpc unix 2 [ ACC ] STREAM LISTENING 19174 1/systemd /var/run/rpcbind.sock
经过一段时间观察后,发现rpcbind.套接字再次激活 rpcbind 服务。
解决方案
如果希望暂时停止 rpcbind 服务而不被 rpcbind. socket 稍后激活,请先停止 rpcbind.service,然后停止 rpcbind.套接:
systemctl stop rpcbind.service systemctl stop rpcbind.socket
********************************************
mount -o nolock -t nfs 192.168.16.126:/home/share /home/nfsshare
vi /etc/exports
在里面加入
/home/share 192.168.16.0/24(rw,all_squash)
********************************************
解决方案:
nfs mount 默认选项包括文件锁,依赖于portmap提供的动态端口分配功能。
解决方法:kill 文件锁(lockd)或者mount -o nolock
********************************************
挂载时使用了RW权限挂载,当时读写仍然Permission denied
重启NFS服务以后,在客户机通过
mount -o nolock 192.168.16.126:/home/share /home/nfsshare
命令将网络文件mount到本地。执行完成之后,目录是可以访问了,但无法写入。感觉有点奇怪,明明在命令中指定可以写入了。
于是到网上搜索资料,发现exports目录权限中,有这么一个参数no_root_squash。
其作用是:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有root 的权限!。
默认情况使用的是相反参数root_squash
在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个身份。
因为我的客户端是使用root登录的,自然权限被压缩为nobody了,难怪无法写入。将配置信息改为:
/home/share 192.168.16.0/24(rw,no_root_squash)
据说有点不安全,但问题是解决了。
上一篇:centos搭建NFS服务