![RPC:端口映射器故障 - 无法接收:errno 113(没有到主机的路由)](https://linux22.com/image/114306/RPC%EF%BC%9A%E7%AB%AF%E5%8F%A3%E6%98%A0%E5%B0%84%E5%99%A8%E6%95%85%E9%9A%9C%20-%20%E6%97%A0%E6%B3%95%E6%8E%A5%E6%94%B6%EF%BC%9Aerrno%20113%EF%BC%88%E6%B2%A1%E6%9C%89%E5%88%B0%E4%B8%BB%E6%9C%BA%E7%9A%84%E8%B7%AF%E7%94%B1%EF%BC%89.png)
我正在尝试通过以下链接使用 nfs 在本地计算机(ubuntu)上安装 hdfs:--
https://www.cloudera.com/documentation/enterprise/5-2-x/topics/cdh_ig_nfsv3_gateway_configure.html#xd_583c10bfdbd326ba--6eed2fb8-14349d04bee--7ef4
因此,在我的机器上,我使用以下命令安装了 nfs-common:-
sudo apt-get install nfs-common
然后,在安装之前我运行了这些命令:-
rpcinfo -p 192.168.170.52
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 48435 status
100024 1 tcp 54261 status
100005 1 udp 4242 mountd
100005 2 udp 4242 mountd
100005 3 udp 4242 mountd
100005 1 tcp 4242 mountd
100005 2 tcp 4242 mountd
100005 3 tcp 4242 mountd
100003 3 tcp 2049 nfs
showmount -e 192.168.170.52
Export list for 192.168.170.52:
/ *
之后我尝试使用以下方法安装 hdfs:--
sudo mount -t nfs -o vers=3,proto=tcp,nolock 192.168.170.52:/ /mnt/hdfs_mount/
但我收到了这个错误:---
mount.nfs: mount system call failed
然后我用谷歌搜索问题并安装了 nfs-kernel-server,portmap 使用
sudo apt-get install nfs-kernel-server portmap
执行上述命令后,输出为:---
rpcinfo -p 192.168.170.52
是: -
192.168.170.52: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
并为
showmount -e 192.168.170.52
是: - -
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
还有以下输出:--
sudo service nfs start
结果是:--
Failed to start nfs.service: Unit nfs.service not found.
请在这件事上给予我帮助。
答案1
我在CentOS 7上测试了这个问题。当你遇到这样的问题时,你必须深入挖掘。
问题:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
与防火墙有关。该命令showmount -e IP_server
显示服务器上可用的所有安装。该命令工作正常,但您必须小心打开哪个端口。如果仅2049
打开端口,则无法通过防火墙。如果 NFS 服务器上的防火墙已配置为允许 NFS 流量进入,它仍会阻止该showmount
命令。要测试是否禁用服务器上的防火墙,您应该消除此问题。
所以这些端口应该在服务器上打开:
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-port=2049/tcp
firewall-cmd --permanent --add-port=2049/udp
firewall-cmd --reload
额外测试 2049/NFS 端口的可用性。
semanage port -l | grep 2049
- 返回 SELinux 上下文和服务名称netstat -tulpen | grep 2049
答案2
semanage
您可以简单地添加nfs
服务,而不是启用端口2049然后设置
firewall-cmd --add-service=nfs --permanent &&
firewall-cmd --reload
答案3
我也遇到了同样的错误,后来我发现错误是服务器的防火墙阻止了 nfs,然后我通过以下方式停止了防火墙systemclt 停止防火墙(这个不建议最好编辑防火墙策略)
答案4
打开防火墙日志记录并发现缺少这些端口:
firewall-cmd --zone=public --permanent --add-port=59805/udp
firewall-cmd --zone=public --permanent --add-port=59805/tcp
firewall-cmd --reload