файл hosts игнорируется, как устранять неполадки?

Файл hosts на компьютерах Windows используется для привязки определенных строк имен к определенным IP-адресам для переопределения других методов разрешения имен.

Часто решает изменить файл hosts и обнаруживает, что изменения отказываются вступать в силу, или что даже старые записи файла hosts игнорируются после этого. Ряд ошибок «getcha» может вызвать это, и может быть сложно разобраться, какой из них.

При столкновении с проблемой Windows, игнорирующей файл hosts, какой комплексный протокол устранения неполадок можно выполнить?


У этого вопроса есть дубликаты на SO, такие как игнорируется файл HOSTS

Однако они, как правило, имеют дело с конкретным случаем, и как только всякая ошибка, которую делает OP, выясняется, обсуждение завершено. Если вы не совершили такую ​​же ошибку, такое обсуждение не очень полезно. Поэтому я подумал, что было бы более полезно иметь общий протокол для решения всех проблем, связанных с хостами, которые охватывали бы случаи all .

117 голосов | спросил Superbest 26 12012vEurope/Moscow11bEurope/MoscowMon, 26 Nov 2012 20:28:09 +0400 2012, 20:28:09

11 ответов


177

Основываясь на моем собственном опыте и на том, с чем я столкнулся во время Googling, вот несколько вещей, которые можно попробовать:

1. Вы проверили, что он работает правильно?

Изменения в хостах должны вступить в силу немедленно, но Windows кэширует данные разрешения имен, поэтому в течение некоторого времени могут использоваться старые записи. Откройте командную строку (Windows + R, cmd , Enter) и введите:

  ipconfig /flushdns
 

Чтобы удалить старые данные. Чтобы проверить, работает ли это, используйте (при условии, что у вас есть запись ipv4 на ваших хостах на www.example.com или запись ipv6 на ваших хостах для ipv6.example.com):

  ping www.example.com -n 1
ping -6 ipv6.example.com -n 1
 

И посмотрите, использует ли он правильный IP-адрес. Если да, ваш файл hosts в порядке, и проблема в другом месте.

Кроме того, вы можете сбросить кеш NetBios с помощью (откройте консоль как администратор или она не удастся):

  nbtstat -R
 

Вы можете проверить текущие данные в кеше DNS с помощью:

  ipconfig /displaydns | Больше
 

2. Основы

  • Правильно ли указан ваш файл hosts? Он должен быть hosts , а не host и т. Д.
  • Правильно ли расширение? Он не должен иметь расширения ( hosts not hosts.txt )), будьте осторожны, если вы настроили окна для скрытия известных расширений, проверьте свойства, которые необходимо убедиться: правильный файл хостов тип будет отображаться как «Файл».
  • Вы следовали правильному синтаксису ? Вы случайно префикс строки с хешем ( # ), который указывает комментарии?
  • Вы позаботились обо всех вариантах ( www.example.com и example.com ), чтобы просто добавить оба)?

3. Пробелы

Формат для каждой строки: IP-адрес , затем горизонтальная вкладка (escape-код \ t , ASCII HT ), hex 0x09 ) или одно пробел (hex 0x20 ), затем имя хоста, т.е. www.example.com , затем, наконец, возврат каретки, за которым следует строка, (escape-коды \ r \ n , ASCII CRLF ), hex 0x0d 0x0a ).

Примеры записей, используя управляющие изображения Юникода для указания управляющих символов. (Не копируйте и не вставляйте их в свой файл хостов!)

  192.0.2.1â ‰ www.example.comâ â Š
2001: db8: 8: 4 :: 2â ‰ ipv6.example.comâ â Š
 

Отдельные байты можно просмотреть в Notepad ++ с помощью hex editor plugin . Notepad ++ также будет показывать специальные символы (View -> Show Symbol), чтобы вы могли легко проверить количество и вид пробельных символов.

Если вы скопировали и вставляли записи хостов откуда-то, вы можете получить несколько пробелов. В теории хосты поддерживают несколько пространств, разделяющих два столбца, но другое дело попробовать, если ничего не работает.

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

Наконец, завершите файл пустой строкой.

4. Ключ реестра

Существует раздел реестра, определяющий расположение файла hosts. Предположительно, Windows фактически не поддерживает размещение файла hosts в других местах, но вы можете проверить его. Ключ:

  \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ DataBasePath
 

Запись должна быть:

 % SystemRoot% \ System32 \ Drivers \ Etc
 

5. Права доступа

Иногда возникают проблемы с разрешениями на файл, атрибутами файла и т. д. Чтобы воссоздать файл с разрешениями по умолчанию:

  1. Создайте новый текстовый файл на рабочем столе.
  2. Скопируйте и вставьте содержимое текущего файла хостов в этот файл в Блокноте.
  3. Сохраните новый текстовый файл и переименуйте его в hosts .
  4. Скопировать ( не перемещать ) файл в каталог % SystemRoot% \ System32 \ drivers \ etc и перезаписать старый файл.

Последний момент важен: копирование работает, а перемещение - нет.

Локальная учетная запись Users должна иметь возможность читать файл хостов . Чтобы убедиться (в Windows 7):

  1. Перейдите в % SystemRoot% \ System32 \ drivers \ etc в проводнике Windows.
  2. Если вы не видите файл hosts , , чтобы вы могли видеть скрытые и системные файлы .
  3. Щелкните правой кнопкой мыши файл hosts и выберите Properties в контекстном меню.
  4. В окне hosts щелкните вкладку Безопасность .
  5. Изучите список имен в поле Группа или имена пользователей: . Если % COMPUTERNAME% \ Users нажмите, чтобы просмотреть разрешения.
  6. Если Users нет или присутствует, но не имеет разрешения Read , нажмите Изменить ... .
  7. Если Users нет, нажмите Добавить ... , введите Users , нажмите Check Names , и нажмите «ОК» или нажмите «Ввод».
  8. Выберите Users и убедитесь, что Read & amp; execute отмечен в столбце Allow . Нажмите «ОК». Если появилось окно предупреждения Windows Security , выберите Да для продолжения.
  9. Нажмите «ОК», чтобы закрыть окно hosts .
  10. Перейдите к разделу 1 этого ответа и следуйте инструкциям, чтобы проверить, работает ли он сейчас.

6. Кодирование

Файл hosts должен быть закодирован в ANSI или UTF-8 без спецификации. Вы можете сделать это с помощью файла -> Сохранить как.

7. Доверенные

Если у вас настроен прокси-сервер, он может обойти файл hosts. Решение состоит в том, чтобы не использовать прокси-сервер или не настроить его для этого.

Чтобы проверить, перейдите в свой Internet Explorer -> Параметры Интернета -> Соединения -> LAN. Если все пустое и «Автоматически определять настройки» отмечено, вы не используете прокси.

Если вы полагаетесь на прокси для доступа к Интернету и, следовательно, не хотите его отключать, вы можете добавить исключения, перейдя в Internet Explorer -> Параметры Интернета -> Соединения -> Настройки локальной сети -> Прокси-сервер /Дополнительно. Затем добавьте свои исключения в текстовое поле «Исключения». Например. локальный, 127.0.0.1;. * DEV

8. Адрес DNS

(Это также может решить проблемы с прокси-сервером.)

Перейдите к свойствам сетевых подключений, затем настройкам TCP /IP и измените первый DNS-сервер на 127.0.0.1 (localhost). Второй, вероятно, должен быть вашим фактическим IP-адресом DNS.

Это не обязательно, если файл hosts работает , но это может помочь в вашем случае, если что-то настроено странно.

9. .local адреса

Если вы используете запись .local домена в форме myhost.local, и она игнорируется, попробуйте следующее

  x.x.x.x myhost.local www.myhost.local
 

, даже если www.myhost.local не существует. Windows каким-то образом не добавляет свою рабочую группу или локальный домен.

ответил Superbest 26 12012vEurope/Moscow11bEurope/MoscowMon, 26 Nov 2012 20:28:09 +0400 2012, 20:28:09
13

Убедитесь, что вы сначала поместили ipaddress, а затем «домен», как это:

  127.0.0.1 bo.dev
127.0.0.1 www.bo.dev
 
ответил Gustaf 4 J0000006Europe/Moscow 2013, 16:20:48
10

Пожалуйста, добавьте проверку прав на файл. Я обнаружил, что хотя у меня есть права локального администратора на компьютере и, следовательно, на хосты. Это произошло только после того, как я добавил локальных пользователей к разрешениям файлов хостов с помощью Read и Read & amp; Выполните, а затем ipconfig /flushdns Что хозяева стали активными.

ответил David Siviour 10 +04002014-10-10T03:29:00+04:00312014bEurope/MoscowFri, 10 Oct 2014 03:29:00 +0400 2014, 03:29:00
4

В моих случаях я пробовал созданный файл Windows 7: C: \ Windows \ System32 \ drivers \ etc \ hosts.ics.

hosts.ics:

  # Этот файл был автоматически сгенерирован для использования в Microsoft Internet
# Общий доступ к подключению. Он содержит сопоставление IP-адресов с именами хостов
# для домашней сети. Не вносите изменений в файл HOSTS.ICS.
# Любые изменения могут привести к потере связи между машинами на
# локальная сеть.
 

В результате Windows игнорирует настройки в C: \ Windows \ System32 \ drivers \ etc \ hosts и использует их на hosts.ics.

ответил Unick 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 25 Sep 2014 00:56:31 +0400 2014, 00:56:31
2

Я столкнулся с одной и той же проблемой, игнорируя хосты файлов. Я пробовал все в этом и многих других потоках без везения. Я подумал, что опубликую то, что сработало для меня, если кто-то другой встретит это.

  1. Откройте проводник Windows в качестве администратора
  2. УДАЛИТЬ файл hosts
  3. Откройте блокнот как администратор и создайте новый файл hosts
  4. Начните с нуля и добавьте записи.
  5. Убедитесь, что файл hosts не имеет расширения .txt

Примечание: просто открытие файла hosts и удаление содержимого, проверка того, что он был 0kb и повторное добавление, не сработало. Я подозреваю, что проблема связана с правами доступа.

ответил PSA4444 18 FebruaryEurope/MoscowbThu, 18 Feb 2016 03:05:20 +0300000000amThu, 18 Feb 2016 03:05:20 +030016 2016, 03:05:20
1

Проработали часы, возможно, дни на этом.

Безопасность IBM Trusteer Endpoint Rapport может вызвать эту проблему.

Я добавил mysite.com в список надежных сайтов.

Я думаю, что в рамках своей безопасности он предотвращает вторжение вредоносного ПО или вирусов на альтернативные сайты.

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

Надеюсь, что кто-то разрешит проблему.

ответил Bird on the Hand 17 FebruaryEurope/MoscowbTue, 17 Feb 2015 00:00:33 +0300000000amTue, 17 Feb 2015 00:00:33 +030015 2015, 00:00:33
1

Одна проблема, пропущенная в обсуждении выше, - это неквалифицированные имена в файле hosts. В этом случае ваши сетевые настройки могут наступить и автоматически добавить ваш собственный домен в конец неквалифицированного домена. Следовательно, имя может не разрешить или, что еще хуже, решить совершенно другую машину.

ответил user287479 6 Mayam15 2015, 10:20:54
0

В окнах убедитесь, что HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ DataBasePath указывается в каталоге файла hosts.

ответил Geln Yang 18 MaramWed, 18 Mar 2015 09:56:30 +03002015-03-18T09:56:30+03:0009 2015, 09:56:30
0

В моем случае проблема заключалась в том, что я копировал файл hosts из зашифрованного каталога и переопределял его и т. д. Мне пришлось посмотреть свойства и снять флажок «encrypt file».

ответил Janos 18 Mayam15 2015, 11:12:02
0

Убедитесь, что вы ввели значения как IP NAME , а не как NAME IP .

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

ответил knb 10 J000000Monday17 2017, 18:21:10
0

Мой файл hosts игнорируется, пока у меня нет сетевого подключения на моем (Windows 7) ноутбуке. Как только я подключаюсь к сети, все работает так, как ожидалось. Очевидно, что без сети я не могу пинговать хосты и т. Д., Но я все же ожидал, что Windows получит их IP-адреса из файла hosts. Это не так. Даже после отключения он все еще ищет адреса в порядке, но между перезагрузкой компьютера и первым подключением к сети он игнорирует файл hosts.

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

ответил Denis Howe 8 Maypm18 2018, 12:55:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132