Отключите IPv6 на кольцевом адресе (локальный хост, имя компьютера,…)

15

Мы попытались установить сторонний программный продукт на новый компьютер с Windows Server 2008 R2 и обнаружили, что все работает, кроме доступа к локальным службам через петлевые адреса, такие как localhostили имя компьютера (например, VPS-Webкоторое разрешается localhost). Мы не используем IPv6 и хотели бы отключить его, пока программное обеспечение не станет совместимым.

Я попытался использовать эти инструкции для отключения IPv6 в Windows 2008 R2, но он не отключил протокол для localhost. Пингует localhostили VPS-Webвсе равно вернется ::1:вместо 127.0.0.1. Я могу использовать, ping localhost -4чтобы получить правильный адрес, но IPv6 имеет приоритет над IPv4, поэтому стороннее программное обеспечение получает только адрес IPv6.

Грег Брей
источник
Вы пытались связаться с продавцом, чтобы узнать, есть ли у него обходной путь? Ping запрашивает адрес IPv6, следовательно, он получит :: 1, хотя приложения, которые не поддерживают IPv6, не получат эти адреса.
Крис С
Программное обеспечение представляет собой мерзость различных компонентов (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
Грег Брей
источник
Это удалило прослушивание ipv6 ([::]) в netstat?
Джаред Берроуз
Это не. [::] - это IPv6-эквивалент 0.0.0.0, который представляет все доступные IP-адреса в системе. Вышеупомянутое исправление специально для адреса обратной связи localhost. У меня есть оба вышеуказанных параметра, а также раздел реестра DisabledComponents = 0xffffffff, и я по-прежнему вижу приложения, прослушивающие [::]. Я не знаю, есть ли способ полностью отключить IPv6.
Грег Брэй,
Спасибо за подтверждение моей проблемы! Я просто был уверен :)
Джаред Берроуз
Это не сработало для меня. Я очистил кэш DNS и перезагрузился, но он все еще возвращает адрес IPv6 ...
jj_
5

Настройка "DisabledComponents" = 0x20 под

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Параметры \

установит на этой машине использование IPv4 вместо IPv6 в префиксных политиках.

Создайте раздел реестра, если он не существует.

Какой-то парень
источник
2

Первоначальный поток ServerFault об использовании DisabledComponentsзначения реестра - действительно лучший способ сделать это. В хорошо функционирующей сети никогда не требуется настройка файла хоста. Настройка реестра также намного проще для развертывания и возврата через групповую политику, если у вас есть Active Directory.

Причина, по которой это не сработало, заключается в том, что этот DisabledComponentsпараметр реестра читается как набор битовых флагов, а не просто включается или выключается. Вот официальная документация от Microsoft на эту тему:
Как отключить IP версии 6 (IPv6) или ее отдельные компоненты в Windows 7, Windows Vista, Windows Server 2008 R2 и Windows Server 2008

Короткая версия заключается в том, что для полного отключения IPv6 в Vista / 2008 и более поздних версиях установите значение DisabledComponentsв 0xff. Я делаю это на каждой машине, которой управляю, где мы явно не используем IPv6. У него есть приятный побочный эффект, заключающийся в значительном сокращении вывода ipconfigкоманды.

Райан Болджер
источник
2
По вашей ссылке ( support.microsoft.com/kb/929852#letmefixit ) эта запись реестра позволяет отключить IPv6 во многих местах, КРОМЕ петли ...
Frank Nocke
1
Ты прав. Однако существуют значения, которые изменяют сетевую функциональность по умолчанию, отдавая предпочтение IPv4 по сравнению с IPv6, что эффективно решит проблемы OP с подключением к localhost или имени компьютера NetBIOS.
Райан Болджер
Ничто из этого на самом деле не работало для меня в Windows Server 2012R2. Это включает попытки изменения хостов, настройки реестра DisabledComponents в дополнение ко многим другим идеям, которые я видел в других местах. Работает на Windows Server 2008, но у меня нет решения для 2012R2.
Скотт Уайт
Вам необходимо перезагрузиться после изменения значения DisabledComponents. Если вы установили его в 0xffffffff, то ни в коем случае он не будет работать даже на 2012R2. Результаты выполнения ipconfig не должны возвращать ничего, что связано с IPv6, и, как таковое, pinging localhost должен пропинговать адрес v4.
Райан Болджер
Новое открытие показывает, что правильное значение должно быть 0xFF вместо 0xFFFFFFF, чтобы избежать 5-секундной задержки загрузки. См. Обновленный Microsoft KB929852 (Это все еще не отключает
обратную связь,
2

Вы пытались удалить запись из файла hosts в% systemroot% \ system32 \ drivers \ etc? Это должно быть сделано, если вам просто нужно, чтобы localhost всегда был IPv4. Однако, если он основан на имени сервера, это, вероятно, не будет работать.

SilverbackNet
источник
1
Файл hosts в windows находится в папке% systemroot% \ system32 \ drivers \ etc, и даже если он не содержит ссылку на ipv6 для проверки связи с локальным хостом, localhost получит ответ :: 1.
Хелвик
Вы получите ответ 127.0.0.1, если сопоставите localhost с этим (и ТОЛЬКО с этим, а не с IPv6)
Фрэнк Ноке
0

Вы также можете перейти к свойствам самой сетевой карты и снять флажок IPv6, оставив IPv4 включенным. Должен сделать свое дело.

JohnThePro
источник
3
Не работает для петлевого адреса ...
Грег Брей
Awww! :( хаха !!
JohnThePro
Это только отключает интерфейс локальной сети. Туннель и обратная связь все еще связаны здесь (проверьте через интерфейс netsh ipv6> show interface)
Чаддада
-3

Попробуйте добавить строку в ваш файл hosts, например:

::1 VPW-Web

Это должно позволить преобразователю получить VPW-Webимя для обратной петли IPv6.

BillThor
источник