RPC:端口映射器故障 - 无法接收:errno 113(没有到主机的路由)

RPC:端口映射器故障 - 无法接收:errno 113(没有到主机的路由)

我正在尝试通过以下链接使用 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

相关内容