禁用 IPv6 时出现 rpc 绑定错误

Mou*_*inX 5 ipv6 onc-rpc

ipv6.disable=1在引导加载程序(systemd 引导)中使用内核命令行参数来禁用 IPv6。但是,使用该选项,我现在在启动后会在日志中收到这些错误。

Jul 09 02:38:48 arch rpcbind[645]: cannot create socket for udp6
Jul 09 02:38:48 arch rpcbind[645]: cannot create socket for tcp6
Jul 09 02:38:48 arch rpc.statd[649]: Failed to create listener xprt (statd, 1, udp6)
Jul 09 02:38:48 arch rpc.mountd[642]: Could not make a socket: (97) Address family not supported by protocol
Run Code Online (Sandbox Code Playgroud)

这是 Arch Linux 4.14.53-1-lts #1 SMP Tue Jul 3 16:27:18 CEST 2018 x86_64 GNU/Linux

这些错误的后果是什么?如何在禁用 IPv6 的同时解决此问题?

更多信息: 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
100005    1   udp  20048  mountd
100005    1   tcp  20048  mountd
100005    2   udp  20048  mountd
100024    1   udp  48386  status
100005    2   tcp  20048  mountd
100024    1   tcp  47193  status
100005    3   udp  20048  mountd
100005    3   tcp  20048  mountd
100003    3   tcp   2049  nfs
100003    4   tcp   2049  nfs
100227    3   tcp   2049  nfs_acl
100021    1   udp  54818  nlockmgr
100021    3   udp  54818  nlockmgr
100021    4   udp  54818  nlockmgr
100021    1   tcp  42833  nlockmgr
100021    3   tcp  42833  nlockmgr
100021    4   tcp  42833  nlockmgr
Run Code Online (Sandbox Code Playgroud)

Mou*_*inX 3

是一个对我有用的解决方案。

此消息使人们感到困惑,认为问题是由 rpcbind 引起的,而实际上问题是其他问题。

为了谷歌用户的利益,要禁用此消息,请编辑文件 /etc/netconfig,并禁用这两行(在开头添加“#”字符),以便它们现在如下所示:

#udp6       tpi_clts      v     inet6    udp     -       -
#tcp6       tpi_cots_ord  v     inet6    tcp     -       -
Run Code Online (Sandbox Code Playgroud)

保存文件,重新启动计算机,您将不再看到“rpcbind:无法为 udp6 创建套接字”消息。

如上所述,它有效,而且似乎是最正确的解决方案。然而,我并不完全理解这个问题的所有细微差别,所以欢迎评论。