停用網卡 IPv6 造成 Rpcbind 服務啟動失敗



Question: 停用網卡 IPv6 造成 Rpcbind 服務啟動失敗?

在 CentOS 7.7 主機中,修改「/etc/sysctl.conf」組態設定檔內容,加入「net.ipv6.conf.all.disable_ipv6 = 1」停用網卡 IPv6 功能,但是重開機後發現導致 Rpcbind 服務啟動失敗?  依照系統提示執行「journalctl -xe」查看到下列錯誤訊息:





Answer:

導致 Rpcbind 啟動失敗的原因和解法,請參考 Red Hat KB 2798411 - rpcbind fails to start with IPv6 disabled - Red Hat Customer Portal 文章內容。

首先,執行「systemctl cat prcbind.socket」可以發現,在 Rpcbind 中會採用 IPv4 / IPv6 dual sockets,所以停用網路卡 IPv6 功能便導致 Rpcbind 服務啟動失敗。


接著,依照 Red Hat KB 2798411 - rpcbind fails to start with IPv6 disabled - Red Hat Customer Portal 文章內容,執行下列指令進行修復:
# grep -rw ^hostonly /usr/lib/dracut/dracut.conf.d /etc/dracut.conf /etc/dracut.conf.d
# yum -y remove dracut-config-generic
dracut -v -f
# diff -u /etc/sysctl.conf <(lsinitrd -f /etc/sysctl.conf)




修復完成後,重新啟動 CentOS 主機便可以發現 Rpcbind 服務可以順利啟動,並且 Listen 相關 Port 號。