Мы попытались установить сторонний программный продукт на новый компьютер с 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.
windows-server-2008-r2
ipv6
loopback
Грег Брей
источник
источник
Ответы:
Сначала я проверил файл хоста, как предложил SilverbackNet, но на сервере Windows 2008 R2 это файл по умолчанию:
#
указывает на комментарий в файле хоста, поэтому все записи закомментированы, и первая строка немного сбивает с толку. Затем я заметил, что для localhost было две закомментированные записи, поэтому я попытался раскомментировать IPv4, и это сработало! Я должен был попробовать это сначала, но я был сбит с пути первой линией. При использовании приведенного ниже файла хоста при пинге имени компьютера или локального хоста всегда возвращается адрес IPv4, что устраняет проблему со сторонним программным обеспечением!источник
Настройка "DisabledComponents" = 0x20 под
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Параметры \
установит на этой машине использование IPv4 вместо IPv6 в префиксных политиках.
Создайте раздел реестра, если он не существует.
источник
Первоначальный поток 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
команды.источник
Вы пытались удалить запись из файла hosts в% systemroot% \ system32 \ drivers \ etc? Это должно быть сделано, если вам просто нужно, чтобы localhost всегда был IPv4. Однако, если он основан на имени сервера, это, вероятно, не будет работать.
источник
Вы также можете перейти к свойствам самой сетевой карты и снять флажок IPv6, оставив IPv4 включенным. Должен сделать свое дело.
источник
Попробуйте добавить строку в ваш файл hosts, например:
::1 VPW-Web
Это должно позволить преобразователю получить
VPW-Web
имя для обратной петли IPv6.источник