ХОСТЫ игнорируются при отключении

проблема

Я вижу странную и чрезвычайно разочаровывающую проблему.

Любая система, которая не подключена к Интернету (в 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, затем снова после извлечения кабеля из маршрутизатора и ожидания в течение нескольких секунд, а затем снова после повторного подключения кабеля. То же самое происходит, если вместо вытягивания NIC отключен через программное обеспечение ([Disable] кнопка в диалоге состояния сетевой карты или через диспетчер устройств).

Выводы

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

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

Вопрос

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


аппендикс

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

Связано

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

Нет соединения

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

XP без IPv6

2 ответа

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

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

Другие вопросы по тегам