ipv6.disable=1
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
이것은 Arch Linux 4.14.53-1-lts #1 SMP Tue July 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
답변1
여기나에게 맞는 솔루션입니다.
이 메시지는 실제로 문제가 다른데도 rpcbind에 의해 문제가 발생했다고 생각하도록 사람들을 혼란스럽게 합니다.
Google 사용자를 위해 이 메시지를 비활성화하려면 /etc/netconfig 파일을 편집하고 이 두 줄을 비활성화(처음에 "#" 문자 추가)하여 이제 다음과 같이 표시되도록 하세요.
#udp6 tpi_clts v inet6 udp - -
#tcp6 tpi_cots_ord v inet6 tcp - -
파일을 저장하고 컴퓨터를 다시 시작하면 "rpcbind: udp6용 소켓을 생성할 수 없습니다"라는 메시지가 더 이상 표시되지 않습니다.
위에서 언급했듯이 작동하며 가장 정확한 솔루션인 것 같습니다. 그러나 나는 이 질문의 모든 뉘앙스를 완전히 이해하지 못하므로 의견을 환영합니다.
답변2
바인딩 IP를 수동으로 지정합니다.
남자 rpc.statd:
-n, --name ipaddr | hostname
Specifies the bind address used for RPC listener sockets. The
ipaddr form can be expressed as either an IPv4 or an IPv6 pre‐
sentation address. If this option is not specified, rpc.statd
uses a wildcard address as the transport bind address.