1. 程式人生 > >解決clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to

解決clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to

series etc vim doc ops 服務 中斷 方法 rec

問題起因:

在配置好一臺NFS服務器,建立好分享目錄,刷新配置以後,在另一臺客戶機中使用showmount -e 出現報錯:

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

問題原因:

服務端的防火墻上默認沒有開啟nfs服務相應的端口

解決辦法:

1.簡單粗暴地關閉防火墻

systemctl stop firewalld

如果開啟了iptables的話,也是一樣的,iptables的策略裏也默認不會為nfs服務開啟需要的端口

systemctl stop iptables

2.在防火墻上開啟端口

在設置了防火墻的環境中使用NFS,需要在防火墻上打開如下端口:

1. portmap 端口 111 udp/tcp;
2. nfsd 端口 2049 udp/tcp;
3. mountd 端口 "xxx" udp/tcp
系統 RPC服務在 nfs服務啟動時默認會為 mountd動態選取一個隨機端口(32768--65535)來進行通訊,我們可以通過編輯/etc/services 文件為 mountd指定一個固定端口:
# vim /etc/services
在末尾添加
mountd 1011/udp
mountd 1011/tcp
wq退出保存該文件


# stopsrc -s rpc.mountd
# startsrc -s rpc.mountd
# exportfs -a
# rpcinfo -p Hostname
現在我們會發現 mountd已經和端口 1011綁定了。

另外,nfs中需要通訊的服務還有 rpc.lockd和 rpc.statd,其中對lockd我們可以用類似的方法來指定固定端口,
# vim /etc/services
添加
lockd 35000/ucp
lockd 35000/tdp


# stopsrc -s rpc.lockd
# startsrc -s rpc.lockd
# exportfs -a
nfs客戶端mount文件系統
# rpcinfo -p Hostname

但 rpc.statd無法通過該方法來指定端口,它只能使用隨機端口,如有必要,在防火墻上要根據下面命令的顯示來開放隨機端口:

# no -a |grep ephemeral
tcp_ephemeral_high = 65535
tcpp_ephemeral_low = 32768
udp_ephemeral_high = 65535
udp_ephemeral_low = 32768

當然也可以不開放 rpc.statd需要的隨機端口,帶來的影響就是如果 nfs連接中斷(比如server或client宕掉了),系統將無法通過statd來恢復連接中斷前的狀態,而必須重新 mount該nfs文件系統。

有關statd的詳細功能說明,請參閱 http://publib.boulder.ibm.com/infocenter/
pseries/v5r3/topic/com.ibm.aix.cmds/doc/aixcmds5/statd.htm

解決clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to