问题

rpcbind 服务无法启动,并在 /var/log/messages 中显示以下错误消息

rpcbind.socket 无法侦听套接字:协议不支持地址族
rpcbind.socket failed to listen on sockets: Address family not supported by protocol
rpcbind.socket failed to listen on sockets Address family not supported by protocol

原因

相关bug:

https://bugzilla.redhat.com/show_bug.cgi?id=1402961

“问题是,如果你禁用 ipv6 n sysctl.conf,它不会从启动开始就被禁用,而是在启动过程的后期被禁用。
同时 systemd 发现 ipv6 已启用并安排了一个套接字的启动,那将在 ipv6 上收听.”

总结一下,如果我们使用 sysctl 配置禁用了 ipv6,那么它仅在内核级别禁用,而不是通过 GRUB 禁用,因此它不会完全禁用,因此 systemd 将尝试在任何 ipv6 地址上的端口 111 上建立连接,[::] :111 在启动过程中。

解决方案:

在 red hat 节点上禁用 IPv6 后重建 GRUB,并重新启动操作系统以从更新的 GRUB 加载。

我们必须在 /etc/sysctl.conf 中禁用 ipv6

net.ipv6.conf.all.disable_ipv6 = 1

然后执行下面的命令以重建 initramfs。

# dracut -v -f

在对 /etc/sysctl.conf 进行修改后,重建 initramfs是必要的。

接下来重新启动服务器以使更改生效,然后尝试启动 rpcbind 服务。

# systemctl start rpcbind
日期:2020-06-02 22:17:14 来源:oir作者:oir