我有一台 Ubuntu 16.04 主机,IP 地址为192.168.1.35
,还有两个 VM 客户端:Ddebian 8 Jessie 和 CentOS 7。我nfs server
在主机上运行,也在nfs client
客户机上运行。对于 Debian 客户机,它nfs-share
可以毫无问题地从主机挂载。问题出在我的 CentOS 客户机上
当我尝试从客户机内部挂载 nfs 共享时,出现以下错误:
[hedin@localhost ~]$ sudo mount -a
mount.nfs: access denied by server while mounting 192.168.1.35:/home/hedin/export/eudyptula
这是我的客人的 /etc/fstab:
#
# /etc/fstab
# Created by anaconda on Mon Apr 10 16:16:12 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root / xfs defaults 0 0
UUID=46ddae58-4556-492c-8e23-8c56a4e067d9 /boot xfs defaults 0 0
/dev/mapper/cl-swap swap swap defaults 0 0
192.168.1.35:/home/hedin/export/eudyptula /home/hedin/mnt/host nfs rw,hard,intr,bg 0 0
防火墙已禁用:
[hedin@localhost ~]$ systemctl is-enabled firewalld
disabled
SELinux 已禁用:
[hedin@localhost ~]$ cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
SELINUX=disabled
SELINUXTYPE=targeted
所有主机均允许:
[hedin@localhost ~]$ cat /etc/hosts.allow
#
# hosts.allow This file contains access rules which are used to
ALL: ALL: ALLOW
我们可以从客户机中看到主机 nfs-share:
[hedin@localhost ~]$ sudo showmount -e 192.168.1.35
Export list for 192.168.1.35:
/home/hedin/export/eudyptula 192.168.1.0/24
/home/hedin/export 192.168.1.0/24
这是我的主机的/etc/export
配置:
hedin@home:~/projects/open-source/linux$ cat /etc/exports
/home/hedin/export 192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async)
/home/hedin/export/eudyptula 192.168.1.0/24(rw,nohide,insecure,no_subtree_check,async)
所以,我不知道我的配置中遗漏了什么。有什么想法吗?
答案1
问题出在服务器上的 /etc/exports 文件中。客户端的 VM IP 与服务器 IP 掩码不匹配。我已允许访问任何 IP,现在我能够在客户机上安装共享。这是新配置:
/home/hedin/export *(rw,fsid=0,insecure,no_subtree_check,async)
/home/hedin/export/eudyptula *(rw,nohide,insecure,no_subtree_check,async)
答案2
请删除文件 /etc/sysconfig/selinux 中的以下行并重新启动 centos 7 机器。
SELINUXTYPE=目标
请更新文件 /etc/fstab 中的以下行,然后再次在 centos 7 机器中挂载共享文件夹。
192.168.1.35:/home/hedin/export/eudyptula /home/hedin/mnt/host nfs 默认值 0 0