IPv4 매핑 IPv6을 비활성화하려면 어떻게합니까?


17

리눅스 박스에는에있는 모든 IPv6 가능 인터페이스에 바인딩 할 수있는 다양한 데몬이 있습니다 ::. 그렇게 할 때, Linux는 IPv4 요청을 해당 데몬에 전송합니다 (예 :) ::ffff:198.51.100.37.

대신 데몬이 바인딩 될 때 IPv4 연결이 거부되고 IPv6 연결 만 허용됩니다 ::. IPv4 연결을 수신하려면 데몬이 0.0.0.0(와) 명시 적으로 바인딩해야 ::합니다.

즉, IPv4가 아닌 IPv6에서만 서비스를 실행하고 싶습니다.

이것을 달성 할 수있는 방법이 있습니까?

답변:


22

이것은 net.ipv6.bindv6onlysysctl에 의해 제어됩니다 . 변경 사항을 적용 하려면 다음을 추가 /etc/sysctl.conf하고 실행 sudo sysctl -p하십시오.

net.ipv6.bindv6only=1

응용 프로그램은 또한 전역 적으로 변경하는 대신 IPv6 주소에만 명시 적으로 바인딩 할 수 있습니다. 예를 들어 nginx에는 지시문에 대한 ipv6only옵션이 listen있습니다. 이는 IPV6_V6ONLY옵션에 해당합니다 setsockopt().


다행히도 앱을 설정할 때 응용 프로그램 (이 경우 OpenSSH)이 이미 소켓에서 IPV6_V6ONLY를 설정 ListenAddress ::했기 때문에 sysctl을 사용하고 다른 모든 것을 재구성 할 필요가 없다는 것을 알았습니다.
Michael Hampton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.