关于NFS挂载问题——NFS failed: Protocol not supported

本文记录了在更换电信宽带及路由器配置后遇到NFS挂载失败问题的解决过程,发现并非内核或busybox mount支持问题,而是路由器与光猫配置不当导致,并给出了解决方案。

1.序

这几天在调试海思板子的时候,刚好长城宽带断网了,之后局域网还是能用的,使用NFS把Ubuntu某个共享目录到单板上,是可以的。长城宽带几天不好,服务态度极差,无力吐槽. 第二天就换了电信宽带,还送了个电信千兆光猫.价钱确实是贵了,但是可以愉快的上网了,根据装宽带师傅的吩咐,使用了千兆口接路由器的WLAN口.

2.挂载NFS

晚上,愉快的使用网络,同时打开单板,发现挂载不上NFS了。这时,就很纳闷了。习惯性就先去网上开始找各种资料。各种方式都尝试了

命令如下:

mount -t nfs -o intr,nolock 192.168.1.101:/mnt/nfs/leon /mnt/nfs

挂载失败提示信息:

failed: Protocol not supported

网上资料都是统一的答案:

1.内核不支持NFS,需要配置内核支持.
2.busy box的mount需要支持NFS.
基本就是以上两种答案。

但其实都不是,后来仔细一想,把千兆口拔掉了,在只有局域网的情况下,再次挂载就成功了^_^

后面发现是路由器跟千兆猫之间的问题。
不该使用千兆猫的千兆口来接路由器的WLAN口,
而应该使用电信猫的百兆口来接路由器的WLAN口,
重启之后果然可以了.
所以均不是网上资料所说的原因.
最后说一下我的路由器只支持450M,而不是千兆.

还有一个不得不提的是,在使用电信光猫千兆口接TPLINK路由器WALN口时,使用单板的WiFi连接路由提供的WiFi,使用ping命令丢包率非常的高。网络也不稳定。

路由器牌子(信息):
TP-LINK无线路由器wifi家用穿墙tplink穿墙王450M高速光纤WR886N

换到百兆网口后,发现网速更稳定了。反正我的宽带也只有20M bit.

以后买个千兆路由试试效果。^_^

3.再一次出现问题.

隔了一段时间未用.发现并不是之前路由器原因导致的,又折腾了老半天,
发现还是没解决问题,偶然在网上搜了一篇帖子,将NFS改成了NFS4结果
就成功了。

问题1

帖子参见:
[SOLVED] NFS protocol not supported

命令1:
mount -t nfs -o intr,nolock 192.168.1.101:/mnt/nfs/leon /mnt/nfs

命令2:
mount -t nfs4 -o intr,nolock 192.168.1.101:/mnt/nfs/leon /mnt/nfs
<think>好的,我现在需要解决用户遇到的NFS挂载错误:“requested NFS version or transport protocol is not supported”。首先,我要理解这个错误的原因。根据用户提供的引用[^1],NFS v4与早期版本存在不兼容的问题,可能用户尝试挂载时使用了不支持的版本或协议。接下来,我需要考虑常见的解决方法。 首先,检查服务器和客户端支持的NFS版本。用户可能配置了不匹配的版本,比如服务器只支持v4而客户端尝试用v3挂载。这时候需要指定正确的版本,比如使用mount -t nfs4。另外,传输协议也是一个因素,NFS v4默认使用TCP,而旧版本可能使用UDP,需要确保协议一致。 然后,检查服务器导出设置是否正确。引用[^2]提到NFS依赖RPC,但在v4中RPC的作用减少,但配置错误仍可能导致问题。用户需要确认/etc/exports中的配置允许客户端访问,并且没有限制版本。 此外,防火墙设置可能阻止了必要的端口。NFS v4只需要2049端口,而旧版本需要多个端口,如果防火墙未开放这些端口,会导致连接失败。用户应该检查iptables或firewalld的设置,确保2049端口开放。 还有,内核模块是否加载。特别是对于NFS v4,需要nfsd模块。使用lsmod | grep nfs查看,如果没有加载,需要用modprobe加载。 最后,查看系统日志,如/var/log/messages或journalctl -u nfs-server,寻找更详细的错误信息,帮助诊断问题。 总结下来,可能的解决步骤包括:指定正确的NFS版本、检查协议配置、验证导出设置、调整防火墙、确保内核模块加载,以及检查日志。需要逐步排查这些方面,找到具体原因。</think>### NFS挂载错误解决方案分析 #### 一、版本兼容性问题排查 1. **强制指定NFS版本**:使用`mount -t nfs4`明确指定版本 ```bash mount -t nfs4 server:/export/path /mnt/nfs ``` NFS v4与早期版本存在协议不兼容问题[^1]。若服务端配置为仅支持v4,客户端必须使用对应版本 2. **查看服务端支持版本** ```bash cat /proc/fs/nfsd/versions ``` 输出示例:`+4.2 +4.1 -4.0`表示支持v4.2和v4.1 #### 二、传输协议配置 1. **协议强制指定**: ```bash mount -o proto=tcp server:/export /mnt/nfs ``` NFS v4默认要求TCP协议,而早期版本可能使用UDP[^2] 2. **服务端配置验证**: 检查`/etc/nfs.conf`: ```ini [nfsd] vers4.2=y tcp=y ``` #### 三、服务端导出配置 1. **exports文件验证**: ```bash /export 192.168.1.0/24(rw,sync,no_subtree_check) ``` 需确认客户端IP在允许范围内 2. **重新加载配置**: ```bash exportfs -rav ``` #### 四、防火墙配置 1. **必要端口开放**: ```bash firewall-cmd --permanent --add-service=nfs firewall-cmd --permanent --add-service=mountd firewall-cmd --permanent --add-service=rpc-bind firewall-cmd --reload ``` NFS v4只需2049端口,但RPC相关服务仍需配置[^3] #### 五、内核模块加载 1. **检查模块状态**: ```bash lsmod | grep nfsd ``` 2. **手动加载模块**: ```bash modprobe nfsd ``` #### 六、日志分析 查看客户端日志: ```bash dmesg | grep -i nfs ``` 服务端日志路径: ```bash /var/log/nfsd.log ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值