루프백 주소 (로컬 호스트, 컴퓨터 이름 등)에서 IPv6 비활성화


15

새 Windows Server 2008 R2 컴퓨터에 타사 소프트웨어 제품을 설치하려고 시도한 결과 localhost컴퓨터 이름 과 같은 루프백 주소 (예 : VPS-Web로 확인 localhost)를 통해 로컬 서비스에 액세스하는 것 외에는 모든 것이 작동하는 것으로 나타났습니다 . 우리는 IPv6을 사용하지 않고 있으며 소프트웨어가 호환 될 때까지 비활성화하고 싶습니다.

이 지침을 사용하여 Windows 2008 R2에서 IPv6비활성화 하려고 시도했지만에 대한 프로토콜을 비활성화하지 않았습니다 localhost. Ping localhost또는 VPS-Web은 (는) ::1:대신 계속 돌아갑니다 127.0.0.1. ping localhost -4올바른 주소를 얻는 데 사용할 수 있지만 IPv6가 IPv4보다 우선하므로 타사 소프트웨어는 IPv6 주소 만 가져옵니다.


공급 업체에 문의하여 해결 방법이 있는지 확인 했습니까? Ping은 IPv6 주소를 요청하므로 :: 1을 얻습니다. IPv6을 지원하지 않는 응용 프로그램은 해당 주소를 얻지 못합니다.
Chris S

이 소프트웨어는 문제가 될 수있는 다양한 구성 요소 (JAVA, Tomcat, Apache, MSSQL, SAP, JDBC, WMI)의 혐오입니다. IPv6을 사용하고 있지 않으므로 비활성화하고 싶습니다. 또한 루프백 어댑터에 대해 이것을 수행하는 옵션이없는 것 같습니다.
그렉 브레이

답변:


12

SilverbackNet이 제안한대로 호스트 파일을 처음 확인했지만 Windows 2008 R2 서버에서 이것이 기본 파일입니다.

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

#호스트 파일의 주석을 나타내므로 모든 항목이 주석 처리되고 첫 번째 행이 약간 혼동됩니다. 그런 다음 주석 처리 된 localhost에 대한 두 개의 항목이 있음을 알았으므로 IPv4의 주석 처리를 제거하려고 시도했습니다! 나는 그것을 먼저 시도해야했지만 첫 번째 선에 의해 궤도에서 벗어났습니다. 아래 호스트 파일을 사용하여 컴퓨터 이름이나 로컬 호스트를 핑하면 항상 IPv4 주소가 반환되므로 타사 소프트웨어의 문제가 해결됩니다!

# localhost name resolution is handled within DNS itself.
#   ::1         localhost
127.0.0.1       localhost
127.0.0.1       VPS-Web

netstat에서 ipv6 ([::]) 청취를 제거 했습니까?
Jared Burrows

그렇지 않습니다. [::]는 시스템에서 사용 가능한 모든 IP 주소를 나타내는 0.0.0.0과 동등한 IPv6입니다. 위의 수정은 localhost 루프백 주소를위한 것입니다. 위의 설정과 DisabledComponents = 0xffffffff 레지스트리 키가 모두 있으며 응용 프로그램에서 [::]을 수신 대기하고 있습니다. IPv6을 완전히 비활성화하는 방법이 있는지 모르겠습니다.
Greg Bray

내 문제를 확인해 주셔서 감사합니다! 난 그냥 확인했다 :)
Jared Burrows

이것은 나를 위해 작동하지 않았습니다. dns 캐시를 플러시하고 재부팅했지만 여전히 IPv6 주소를 반환합니다.
jj_

5

아래에서 "DisabledComponents"= 0x20 설정

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameters \

접두사 정책에서 해당 컴퓨터가 IPv6 대신 IPv4를 사용하도록 설정합니다.

레지스트리 키가 없으면 만듭니다.


2

DisabledComponents레지스트리 값 사용에 대한 초기 ServerFault 스레드 가 실제로 가장 좋은 방법입니다. 제대로 작동하는 네트워크에서는 호스트 파일 조정이 필요하지 않습니다. 레지스트리 조정은 Active Directory가있는 경우 그룹 정책을 통해 훨씬 쉽게 배포하고 되돌릴 수 있습니다.

작동하지 않는 이유는 DisabledComponents레지스트리 설정이 단순히 온 / 오프가 아닌 비트 플래그 세트로 읽혀 지기 때문입니다 . Windows 7, Windows Server 2008 R2 및 Windows Server 2008에서 IP 버전 6 (IPv6) 또는 특정 구성 요소를 비활성화하는 방법 에 대한 Microsoft 공식 문서는 다음과 같습니다.

짧은 버전은 Vista / 2008 이상에서 IPv6을 완전히 비활성화하려면 값을 DisabledComponents로 설정하는 것 0xff입니다. IPv6을 명시 적으로 사용하지 않는 모든 컴퓨터에서이 작업을 수행합니다. ipconfig명령 의 출력을 크게 단축시키는 좋은 부작용이 있습니다 .


2
귀하의 링크 ( support.microsoft.com/kb/929852#letmefixit ) 에 따르면 이 레지스트리 항목을 사용하면 루프백을 제외한 여러 곳에서 IPv6를 비활성화 할 수 있습니다.
Frank Nocke

1
당신이 올바른지. 그러나 로컬 네트워크 또는 NetBIOS 컴퓨터 이름에 연결하는 데있어 OP의 문제를 효과적으로 해결하는 IPv6보다 IPv4를 선호하도록 기본 네트워크 기능을 변경하는 값이 있습니다.
Ryan Bolger

이 중 어느 것도 Windows Server 2012R2에서 실제로 효과가 없었습니다. 여기에는 다른 곳에서 본 다른 많은 아이디어 외에도 호스트 수정 시도, DisabledComponents 레지스트리 설정이 포함됩니다. Windows Server 2008에서 작동하지만 2012R2에 대한 솔루션이 없습니다.
Scott White

DisabledComponents 값을 수정 한 후 재부팅해야합니다. 0xffffffff로 설정하면 2012R2에서도 작동하지 않습니다. ipconfig를 실행 한 결과는 IPv6과 관련된 아무것도 반환하지 않으므로 localhost를 ping하면 v4 주소를 ping해야합니다.
Ryan Bolger

새로운 결과는 5 초의 부팅 지연을 피하기 위해 올바른 값이 0xFFFFFFF 대신 0xFF 여야한다는 것을 보여줍니다. 업데이트 된 Microsoft KB929852 참조 (여전히 루프백을 비활성화하지는 않음)
wandersick

2

% systemroot % \ system32 \ drivers \ etc의 hosts 파일에서 항목을 제거하려고 했습니까? "localhost"만 있으면 항상 IPv4가되어야합니다. 그러나 서버 이름을 기반으로하는 경우 작동하지 않을 수 있습니다.


1
Windows의 호스트 파일은 % systemroot % \ system32 \ drivers \ etc에 있으며 로컬 호스트 핑에 대한 ipv6 참조가 포함되어 있지 않더라도 localhost는 :: 1 응답을받습니다.
Helvick

localhost를 (그리고 IPv6이 아닌 그에 만) 매핑하면 127.0.0.1 응답을받습니다.
Frank Nocke

0

NIC 자체의 속성으로 이동하여 IPv4 상자를 선택 해제하여 IPv4를 활성화 할 수 있습니다. 트릭을해야합니다.


3
루프백 주소에서 작동하지 않습니다 ...
Greg Bray

아아! :( haha ​​!!
JohnThePro

LAN 인터페이스 만 비활성화합니다. 터널과 루프백은 여전히 ​​여기에 연결되어 있습니다 (netsh 인터페이스 ipv6> show 인터페이스를 통해 확인)
Chadddada

-3

다음과 같이 호스트 파일에 줄을 추가하십시오.

::1 VPW-Web

이것은 리졸버가 VPW-WebIPv6 루프백의 이름 으로 얻을 수 있도록해야합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.