NFS挂载时出现"access denied by server while mounting"的解决方法

NFS是非常通用和简单的Linux下共享协议,但是最近安装了一次,在另一台CentOS用mount挂载时却出现“access denied by server while mounting”这个错误;
 
因为之前配置过很多次NFS了,都没出现过一点问题,于是先试试在本机mount挂载,测试可以挂载,但是在另一台机器上却报错,首先想到的是iptables防火墙问题,于是关闭防火墙,也一样报错。
 
去网上搜索了一下,遇到这个错误的人也很多,但是原因都不大相同,在这里我就总结一下出现此错误的几种原因:
 
1、使用了非法端口,也就是使用了大于1024的端口。
这个错误,可以通过查看日志确认:
[root@local~ /]# cat /var/log/messages | grep mount
Jan 2 12:49:04 localhost mountd[1644]: refused mount request from 192.168.0.100 for /home/nfsshare/ (/home/nfsshare): illegal port 1689
 
解决办法:
修改配置文件/etc/exports,加入 insecure 选项,重启nfs服务,再尝试挂载。
/home/nfsshare/  *(insecure,rw,async,no_root_squash)
 
2、NFS版本问题
编辑/etc/sysconfig/nfs文件,找到下面:

#Turn off v2 and v3 protocol support 
#RPCNFSDARGS="-N 2 -N 3" 
#Turn off v4 protocol support 
#RPCNFSDARGS="-N 4"  /*把这句前面的#号去掉*/

最后保存,重启nfs服务,再尝试挂载;如果挂载不上,可尝试在后面加-o nolock参数。
 
3、查看客户端挂载的目录是否具备读写权限,添加相应权限即可。
 
4、nfs服务器上的/etc/hosts中设置了客户端机器IP对应域名,去掉即可。
 

通过以上这几种方法,access denied by server while mounting这个错误应该可以得到解决了。

原文地址:http://www.heminjie.com/system/linux/2998.html

<think>好的,我现在需要帮助用户解决NFS挂载出现的“accessdenied byserver whilemounting”错误。用户已经提供了一些站内引用,我需要结合这些信息以及之前的对话内容来给出详细的原因分析和解决方法。首先,回顾用户的问题,他们之前提到过mount.nfs的访问被拒绝,现在他们想深入查找具体原因。用户提供的引用中提到了几个关键点:检查服务器日志、指定NFS版本、在exports文件中添加“insecure”选项。同,用户之前的回答中已经覆盖了配置检查、防火墙、权限、SELinux等方面。接下来,我需要整合这些信息。首先,原因分析部分需要涵盖服务器配置、权限问题、版本不兼容、端口问题以及安全模块。然后,解决方法需要分步骤详细说明,包括检查exports配置、指定NFS版本、处理非特权端口、同步用户映射、防火墙设置、安全模块调整、日志检查等。每个步骤都要参考用户提供的引用,并适当添加引用标记。需要注意用户提到的引用[1]中的服务器日志检查,引用[2]中的版本指定,以及引用[3]中的“insecure”选项。这些都需要在相应的部分提到,并正确标注引用来源。此外,用户之前的回答中提到的防火墙和SELinux也是重要因素,需要保留。 还需要确保回答结构清晰,分点列出原因和解决方法,每个部分都有明确的步骤和示例命令。例如,在服务器配置部分,需要给出修改exports文件的例子,并说明重新加载配置的命令。在版本不兼容的问题中,要提供挂载命令的示例,包括指定nfsvers参数。同,用户可能遇到的问题还包括用户ID不一致,因此需要提到同步UID/GID或使用anonuid选项。此外,非特权端口的问题需要添加“insecure”选项,这也是引用[3]中提到的解决方法,需要正确引用。最后,生成的相关问题需要与NFS配置和故障排除相关,例如如何配置匿名共享、版本差异、Kerberos安全增强等,这些在之前的对话中也有涉及,需要保持一致性。 总结下来,回答的结构应该是先分析可能的原因,再逐步给出解决方法,每个方法都参考用户提供的引用,并添加引用标记。最后列出相关问题,帮助用户进一步学习。同,注意使用中文,避免Markdown格式,保持自然流畅。</think>### NFS挂载被拒绝访问的原因分析及解决方法 #### **原因分析** 1. **服务器端配置错误** - `/etc/exports`未正确授权客户端IP或网段[^1] - 缺少`insecure`选项(使用非特权端口需添加)[^3] 2. **NFS版本不兼容** - 客户端默认使用旧版本(如NFSv2),而服务器仅支持NFSv3/v4[^2] 3. **权限问题** - 共享目录本地权限不足(如`chmod`或`chown`未配置) - 用户身份映射不一致(客户端与服务器UID/GID不同步) 4. **防火墙或端口限制** - 防火墙未开放NFS相关端口(如2049/tcp、111/udp) 5. **安全模块限制** - SELinux或AppArmor阻止了NFS服务通信 --- #### **解决方法** ##### **1. 检查并修正服务器端配置** - 修改`/etc/exports`,明确授权客户端IP并添加必要选项: ```bash /path/to/share 192.168.1.0/24(rw,sync,insecure,no_root_squash) # 允许非特权端口[^3] ``` - 重新加载配置: ```bash exportfs -ra # 立即生效 systemctl restart nfs-server # 重启服务(可选) ``` ##### **2. 指定NFS版本挂载** - 客户端挂载强制使用服务器支持的版本(如NFSv3): ```bash mount -t nfs -o nfsvers=3 192.168.2.3:/usr /mnt # 指定版本号[^2] ``` ##### **3. 处理非特权端口问题** - 若客户端使用非特权端口(>1024),需在服务器端`/etc/exports`中添加`insecure`选项[^3]: ```bash /usr 192.168.2.3(rw,insecure) # 允许非特权端口访问 ``` ##### **4. 同步用户身份映射** - 确保客户端与服务器的用户UID/GID一致: ```bash # 客户端和服务端执行以下命令检查 id username # 查看UID/GID ``` - 或配置匿名访问(慎用): ```bash /usr 192.168.2.3(rw,all_squash,anonuid=1000,anongid=1000) # 映射到指定UID/GID ``` ##### **5. 开放防火墙端口** - 允许NFS服务及RPC端口: ```bash firewall-cmd --permanent --add-service={nfs,rpc-bind} # 开放NFSv3/v4端口 firewall-cmd --reload ``` ##### **6. 检查安全模块限制** - 临禁用SELinux测试: ```bash setenforce 0 # 临关闭 ``` - 永久调整策略(需谨慎): ```bash sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config ``` ##### **7. 分析服务器日志定位问题** - 查看服务器端日志,过滤与挂载相关的错误: ```bash tail -f /var/log/messages | grep mount # CentOS/RHEL[^1] journalctl -u nfs-server -f # systemd系统 ``` --- #### **示例命令** - **客户端挂载测试**: ```bash rpcinfo -p 192.168.2.3 # 检查NFS服务状态 showmount -e 192.168.2.3 # 查看服务器导出的共享列表 mount -t nfs -o nfsvers=4 192.168.2.3:/usr /mnt # 使用NFSv4挂载 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值