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 -p
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 57161 status
100024 1 tcp 33586 status
100005 1 udp 892 mountd
100005 1 tcp 892 mountd
100005 2 udp 892 mountd
100005 2 tcp 892 mountd
100005 3 udp 892 mountd
100005 3 tcp 892 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 32769 nlockmgr
100021 3 udp 32769 nlockmgr
100021 4 udp 32769 nlockmgr
100021 1 tcp 32803 nlockmgr
100021 3 tcp 32803 nlockmgr
100021 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就可以看到共享文件列表了