NFS错误
- 问题现象
- 解决方法
写在前面
 这两天搭建几台服务器,需要使用nfs服务,于是六台选其一做服务端,其余做客户端,搭建过程写在centos7离线搭建NFS共享文件,但是访问共享时出现报错:rpc mount export: RPC: Unable to receive; errno = No route to host,网上找来原因是防火墙问题
 于是将服务端的防火墙关闭 systemctl stop firewalld,问题果然消失,但是服务器防火墙不能关闭,所以只得开放端口,以此文章记录
问题现象
在客户端执行showmount -e 192.168.31.20时,出现rpc mount export: RPC: Unable to receive; errno = No route to host错误

但是客户端能ping通服务端
解决方法
1、systemctl stop firewalld 或者 iptables -F
让服务端禁用防火墙,一劳永逸,这就不多说了
此时showmount -e,就能看到nfs共享文件列表了
2、开放nfs端口
(1)修改 /etc/sysconfig/nfs
 去掉端口MOUNTD_PORT=892前面的#
[root@nfs ~]# vim /etc/sysconfig/nfs
# Port rpc.mountd should listen on.
MOUNTD_PORT=892
(2)执行 rpcinfo -p 或者
查看nfs服务的端口号
[root@nfs ~]# rpcinfo -pprogram vers proto   port  service100000    4   tcp    111  portmapper100000    3   tcp    111  portmapper100000    2   tcp    111  portmapper100000    4   udp    111  portmapper100000    3   udp    111  portmapper100000    2   udp    111  portmapper100024    1   udp  57161  status100024    1   tcp  33586  status100005    1   udp    892  mountd100005    1   tcp    892  mountd100005    2   udp    892  mountd100005    2   tcp    892  mountd100005    3   udp    892  mountd100005    3   tcp    892  mountd100003    3   tcp   2049  nfs100003    4   tcp   2049  nfs100227    3   tcp   2049  nfs_acl100003    3   udp   2049  nfs100003    4   udp   2049  nfs100227    3   udp   2049  nfs_acl100021    1   udp  32769  nlockmgr100021    3   udp  32769  nlockmgr100021    4   udp  32769  nlockmgr100021    1   tcp  32803  nlockmgr100021    3   tcp  32803  nlockmgr100021    4   tcp  32803  nlockmgr
[root@localhost nfsdata]# sudo lsof -i -P -n | grep LISTEN
rpcbind      1175     rpc    7u  IPv4    12197      0t0  TCP *:111 (LISTEN)
rpcbind      1175     rpc    9u  IPv6    12199      0t0  TCP *:111 (LISTEN)
sshd         2109    root    5u  IPv4    18306      0t0  TCP *:22 (LISTEN)
sshd         2109    root    6u  IPv6    18308      0t0  TCP *:22 (LISTEN)
rpc.mount  315296    root    5u  IPv4 27979052      0t0  TCP *:20048 (LISTEN)
rpc.mount  315296    root    7u  IPv6 27979056      0t0  TCP *:20048 (LISTEN)
docker-pr  770619    root    4u  IPv4 15959846      0t0  TCP *:27017 (LISTEN)
docker-pr  770627    root    4u  IPv6 15992284      0t0  TCP *:27017 (LISTEN)
rpc.statd  953233 rpcuser    8u  IPv4 16548477      0t0  TCP *:37319 (LISTEN)
rpc.statd  953233 rpcuser   10u  IPv6 16548481      0t0  TCP *:57331 (LISTEN)
docker-pr 3082413    root    4u  IPv4 10111358      0t0  TCP *:8080 (LISTEN)
docker-pr 3082420    root    4u  IPv6 10098519      0t0  TCP *:8080 (LISTEN)
(3)开放相应端口
[root@nfs ~]# firewall-cmd --zone=public --add-port=892/tcp --permanent
success
[root@nfs ~]# firewall-cmd --zone=public --add-port=111/udp --permanent
success
[root@nfs ~]# firewall-cmd --zone=public --add-port=37319/tcp --permanent
success
[root@nfs ~]# firewall-cmd --zone=public --add-port=57331/tcp --permanent
success
[root@nfs ~]# firewall-cmd --zone=public --add-port=20048/tcp --permanent
success
[root@nfs ~]# firewall-cmd --reload
success
[root@nfs ~]#  firewall-cmd --zone=public --list-ports
892/tcp 111/udp
至此就结束了
你可以执行
 systemctl start rpcbind
 systemctl start nfs
 重新启动nfs服务
而后在客户端执行showmount -e就可以看到共享文件列表了