Назад | Перейти на главную страницу

HOSTS игнорируются при отключении

Проблема

Я наблюдаю странную и крайне неприятную проблему.

Любая система, не подключенная к Интернету (Windows 7 показывает значок отсутствия доступа в Интернет, потому что не может постоянно пинговать серверы Microsoft), не может даже получить доступ к локальным серверам.

Гипотеза

Проблема заключается в том, что HOSTS файл не используется для разрешения записей DNS при отсутствии активных сетевых адаптеров.

Тесты / Воспроизведение

Вы можете воспроизвести это так:

  1. Отключите систему от Интернета (убедитесь, что все проводные и беспроводные соединения отключены).

  2. При необходимости добавьте запись в HOSTS файл (например, 127.0.0.1 foobar или 127.0.0.1 foobar.com)

  3. Откройте командную строку

  4. Тип ping foobar или ping foobar.com

Наблюдения

На скриншотах ниже показан наглядный и наглядный пример. На первом этапе ноутбук подключается к роутеру по беспроводной сети. В HOSTS файл имеет только три записи, и они разрешаются нормально. Во второй привязке беспроводное радио выключено, поэтому записи в HOSTS файл игнорируется. Кроме того, обратите внимание, что пинг localhost по-прежнему работает даже без активных сетевых адаптеров (как и 127.0.0.1), но он использует адрес IPv6 (должен быть жестко запрограммирован).

Вы можете увидеть те же результаты в Windows XP без установленного IPv6, поэтому он не имеет ничего общего с IPv6. Я пытался тосковать, что должен решили 127.0.0.1 в то время как настольная система (без беспроводных сетевых адаптеров) была подключена через адаптер Ethernet, затем снова после вытаскивания кабеля из маршрутизатора и ожидания пары секунд, затем снова после подключения кабеля обратно. То же самое происходит, если вместо того, чтобы тянуть отключенный кабель, сетевая карта отключается программно ( [Disable] кнопку на сетевой карте Положение дел диалог или через Диспетчер устройств).

Выводы

Похоже, что HOSTS файл читается и используется только при наличии активного сетевого адаптера, в противном случае он игнорируется. Это делает некоторые смысл в том, что если нет активных сетевых адаптеров, то предположительно не будет никакой сетевой активности, и, следовательно, нет необходимости разрешать имена хостов через HOSTS файл.

Однако это предположение является надуманным, поскольку оно исключает возможность размещения виртуальных серверов на локальном уровне. В HOSTS файл должен использоваться независимо от подключения к внешнему DNS-серверу, в противном случае вы не сможете использовать простые / согласованные / тестируемые имена для локально размещенных серверов, когда они не подключены к Интернету (например, веб-серверы; справочные серверы для Visual Studio, 3dsmax и т. д .; и так далее).

Вопрос

Кто-нибудь знает, как заставить Windows использовать HOSTS файл, даже если нет активных сетевых адаптеров?


Приложение

фигура 1: Пока беспроводная сетевая карта подключена к маршрутизатору (кабельный модем находится в режиме ожидания, поэтому нет внешнего подключения к Интернету).

фигура 2: С выключенным беспроводным радио (порт Ethernet не отключается в обоих случаях).

Рисунок 3: Те же результаты в XP без IPv6

Вы пытались проверить, правильно ли разрешаются эти имена хостов с помощью ping или чего-то еще? Это может помочь в обнаружении проблемы. Если это так, то, скорее всего, это проблема, описанная MDMarra.

Скорее всего, у вас есть служба или службы, привязанные к адресу или интерфейсу, которые больше не работают, когда вы отключили кабель. Проверьте свои файлы конфигурации.