Файл hosts не работает
Обновлено: 21.11.2024
Что такое файл «Hosts» в Windows и как заставить файл hosts работать правильно? Файл Windows Hosts не работает? Проблема решена.
Когда вы вводите доменное имя в браузере и нажимаете кнопку "Перейти", ПК с Windows в первую очередь проверяет файл hosts на предмет наличия в нем чего-либо, относящегося к этому домену. Если нет, то он будет использовать обычный IP-адрес, который он находит из любого списка DNS-серверов, который использует ваш компьютер. Однако, если он найдет доменное имя в файле hosts, он обойдет все это и перейдет прямо к указанному IP-адресу, чтобы попытаться найти там веб-сайт. Файл Hosts представляет собой тип текстового файла. Обычно он пуст, но вы можете изменить его, чтобы заставить компьютер искать очень определенный IP-адрес для доменов, игнорируя настройки DNS (система доменных имен) в Интернете.
Почему вы можете это сделать? Возможно, вы переносите веб-сайт с одного хоста на другой и хотите убедиться, что веб-сайт работает правильно, прежде чем изменять все настройки домена.
Если вы читаете это, вы, вероятно, уже все это знаете и просто задаетесь вопросом, как заставить файл hosts работать правильно! Я обнаружил, что это очень утомительно, но в конце концов я добился этого, и теперь это работает каждый раз. Я собираюсь описать процесс, поскольку он работает на моем стандартном компьютере с Windows 10 (pro).
Во-первых, примечание о проверке успеха. Если изменения в файле hosts сделаны правильно, вы должны немедленно увидеть результаты. Вам не придется сбрасывать DNS или перезагружать браузер (по крайней мере, с Chrome), или перезагружать компьютер, или что-то в этом роде. Запуск командной строки и «ping domain.name» покажет вам, какой IP-адрес используется. Оно должно совпадать с тем, что вы указали в файле hosts.
Вот шаги, необходимые для получения рабочего файла hosts
- Войдите в систему как обычный администратор.
- Создайте новый файл hosts где-нибудь, например на Рабочем столе или в Документах.
- Отредактируйте (используя правильный формат) и сохраните файл hosts с помощью Блокнота Windows.
- Перейдите к реальному местоположению файла hosts и переименуйте его.
- Скопируйте и вставьте новый файл hosts в это место, приняв всплывающее окно с разрешениями.
- Радуйтесь
Подробности
Если у вас есть только одна учетная запись Windows на вашем ПК, то она наверняка принадлежит администратору.
Создайте новый текстовый файл в одной из ваших обычных папок (НЕ в реальном местоположении файла hosts — это точно не сработает). Назовите файл «hosts.txt». Я предлагаю вам сохранить его в удобном месте на потом, чтобы вы могли легко изменить его в следующий раз, когда он вам понадобится. Переименуйте файл, чтобы удалить расширение .txt — Windows предупредит вас, что он может перестать работать, но все равно примите его. Если вы не видите расширения файлов, в проводнике выберите вид > параметры > вид (вкладка) и снимите флажок "Скрыть расширения для известных типов файлов".
Щелкните правой кнопкой мыши новый файл hosts и выберите параметр «Открыть с помощью». Ваша цель — открыть его с помощью Блокнота Windows. Не какое-либо другое расширенное приложение для блокнота, которое вы могли установить. Просто Блокнот Windows. Вам не нужно открывать его как администратор или что-то в этом роде, потому что вы уже являетесь администратором.
Сохраните и закройте новый файл hosts.
Перейдите к C:\Windows\System32\drivers\etc
Здесь вы должны найти файл hosts — в нем могут быть какие-то комментарии, но не так важно, что именно. Переименуйте его в «hostsbak»
Скопируйте и вставьте новый файл hosts из того места, где вы его сохранили, в папку C:\Windows\System32\drivers\etc, принимая любые запросы «продолжить».
Нельзя пытаться вставить новый файл поверх существующего файла hosts — это не сработает. Убедитесь, что вы выполнили описанный выше шаг переименования.
Теперь все должно работать
Теперь все готово. Файл hosts должен работать. Откройте командную строку и пропингуйте доменное имя, чтобы проверить, какой IP-адрес возвращается. Если вы точно следовали этим инструкциям, это должен быть файл из вашего нового файла hosts. Если это не так, значит, вы либо сделали что-то не так, либо что-то не так с вашей установкой Windows, и в этом случае вам придется действовать самостоятельно.
Как отключить его снова
Я считаю, что лучший способ предотвратить перенаправление — это просто переименовать файл hosts, потому что тогда его легко включать и выключать при проверке сайтов, без необходимости воссоздавать или редактировать и т. д.
Что обычно идет не так:
Если вы, наконец, добьетесь успеха после прочтения этого, пожалуйста, прокомментируйте 🙂
И если вы знаете кого-то, кто хочет научиться бегать, у меня есть сайт и для этого.
Это сумасшествие, у меня никогда не было этой проблемы до сих пор. Мне нравится использовать файл hosts для блокировки определенных веб-сайтов. Но по какой-то причине мой файл hosts не блокирует ни один сайт.Я просмотрел этот пост (файл hosts работает неправильно) и попробовал большинство, если не все, эти вещи, но я все еще не могу использовать файл hosts для блокировки веб-сайтов. Что-нибудь еще я могу сделать, чтобы исправить это? Я использовал файлы hosts в течение многих лет и никогда не сталкивался с этой проблемой.
Примечание. Я только что получил этот компьютер (восстановленный), так что, может быть, перед отправкой мне сделали какие-то странные настройки? Я бы так не думал, но решил упомянуть об этом.
Вот как у меня есть записи в файле hosts. может я что-то упускаю?
не могли бы вы попробовать пропинговать его? Пожалуйста, откройте powershell или CMD, введите "ping website.com" и опубликуйте полный результат, спасибо.
Используете ли вы графический интерфейс для открытия файла? Я думаю, что можно создать файл с именем, похожим на hosts, но другим (например, o из русского алфавита). Файл существует, чтобы ввести вас в заблуждение, он безопасен. Настоящие хосты могут быть скрыты и содержать мошеннические записи. Что делать, если вы открываете файл таким образом, что требуется вводить его законный полный путь? (не только имя файла, но и каталоги могут быть подделаны).
3 ответа 3
Просто изменить файл hosts недостаточно. Вам также необходимо очистить кеш DNS.
Откройте командную строку и введите:
Теперь проверьте, работает ли он, пропинговав один из доменов, предпочтительно тот, который вы недавно изменили:
и посмотрите, возвращает ли он адрес 127.0.0.1
Если проверка связи не работает, вероятно, права доступа к файлу хоста неверны. Неправильные разрешения для файла hosts могут вызвать произвольную блокировку файла hosts, что не позволит Windows правильно прочитать его и заполнить кэш DNS. Исправьте права доступа к хост-файлу, затем еще раз выполните команду ipconfig /flushdns.
Если проверка связи работает, но веб-сайт загружается неправильно, значит, веб-сайт по-прежнему загружается из кеша. Очистите кеш браузера, чтобы устранить проблему.
Файл hosts на компьютерах с Windows используется для привязки определенных строк имен к определенным IP-адресам, чтобы переопределить другие методы разрешения имен.
Часто кто-то решает изменить файл hosts и обнаруживает, что изменения отказываются вступать в силу или что после этого даже старые записи в файле hosts игнорируются. Это может быть вызвано целым рядом ошибок, и может быть сложно понять, какая из них.
Если вы столкнулись с проблемой, когда Windows игнорирует файл hosts, какой комплексный протокол устранения неполадок можно использовать?
У этого вопроса есть дубликаты в SO, например, файл HOSTS игнорируется
Однако они, как правило, касаются конкретного случая, и как только обнаруживается ошибка, допущенная ОП, обсуждение прекращается. Если вы случайно не допустили ту же ошибку, такое обсуждение не очень полезно. Поэтому я подумал, что было бы полезнее иметь общий протокол для решения всех проблем, связанных с хостами, который охватывал бы все случаи.
Кроме того, как кто-то написал в другом месте, не используйте "nslookup" для проверки, потому что эта команда игнорирует файл hosts. Скорее используйте "ping".
12 ответов 12
Исходя из собственного опыта и того, что я обнаружил при поиске в Google, вот несколько вещей, которые можно попробовать:
1. Вы проверили, что он работает корректно?
Изменения хостов должны вступить в силу немедленно, но Windows кэширует данные разрешения имен, поэтому в течение некоторого времени могут использоваться старые записи. Откройте командную строку (Windows+R, cmd, Enter) и введите:
И проверьте, использует ли он правильный IP-адрес. Если да, то ваш файл hosts в порядке и проблема в другом.
Кроме того, вы можете сбросить кеш NetBios с помощью (откройте консоль от имени администратора, иначе произойдет сбой):
Вы можете проверить текущие данные в кеше DNS с помощью:
2. Основы
3. Пробел
Примеры записей с использованием управляющих изображений Unicode для обозначения управляющих символов. (Не копируйте и не вставляйте их в файл hosts!)
Отдельные байты можно просмотреть в Notepad++ с помощью подключаемого модуля шестнадцатеричного редактора. Notepad++ также отображает специальные символы (Вид -> Показать символ), поэтому вы можете легко проверить количество и вид пробельных символов.
Если вы откуда-то скопировали и вставили записи хостов, у вас может получиться несколько пробелов. Теоретически hosts поддерживает несколько пробелов, разделяющих два столбца, но если ничего другого не работает, стоит попробовать.
На всякий случай убедитесь, что во всех строках вашего файла hosts используются символы табуляции или пробелы, а не то и другое сразу.
Наконец, завершите файл пустой строкой.
4. Ключ реестра
Существует раздел реестра, указывающий расположение файла hosts. Предположительно, Windows на самом деле не поддерживает размещение файла hosts в других местах, но вы можете проверить. Ключ:
Запись должна быть:
Или в окне командной строки введите:
который должен отображать что-то похожее на:
5. Разрешения
Иногда возникают проблемы с правами доступа к файлу, атрибутами файла и подобными вещами. Чтобы воссоздать файл с разрешениями по умолчанию:
- Создайте новый текстовый файл на рабочем столе.
- Скопируйте и вставьте содержимое вашего текущего файла hosts в этот файл в Блокноте.
- Сохраните новый текстовый файл и переименуйте его в hosts .
- Скопируйте (не перемещайте) файл в каталог %SystemRoot%\System32\drivers\etc и перезапишите старый файл.
Последний пункт важен: копирование работает, а перемещение — нет.
Локальная учетная запись пользователя должна иметь возможность читать файл hosts. Чтобы убедиться (в Windows 7):
- Перейдите к %SystemRoot%\System32\drivers\etc в проводнике Windows.
- Если вы не видите файл hosts, убедитесь, что вы видите скрытые и системные файлы.
- Щелкните правой кнопкой мыши файл hosts и выберите "Свойства" в контекстном меню.
- В окне "Свойства хоста" перейдите на вкладку "Безопасность".
- Проверьте список имен в поле Имена групп или пользователей:. Если присутствует %COMPUTERNAME%\Users, щелкните его, чтобы просмотреть разрешения.
- Если пользователь отсутствует или присутствует, но не имеет разрешения на чтение, нажмите «Изменить». .
- Если пользователей нет, нажмите «Добавить». , введите "Пользователи", нажмите "Проверить имена" и нажмите "ОК" или клавишу "Ввод".
- Выберите «Пользователи» и убедитесь, что в столбце «Разрешить» установлен флажок «Чтение и выполнение». Нажмите «ОК». Если появится окно предупреждения системы безопасности Windows, выберите Да, чтобы продолжить.
- Нажмите "ОК", чтобы закрыть окно "Свойства хоста".
- Перейдите к разделу 1 этого ответа и следуйте инструкциям, чтобы проверить, работает ли он сейчас.
Или в окне командной строки введите:
который должен отображать что-то вроде:
Вы должны увидеть (R) после BUILTIN\Users .
6. Кодирование
Файл hosts должен быть закодирован в ANSI или UTF-8 без спецификации. Вы можете сделать это с помощью Файл -> Сохранить как.
7. Прокси
Если у вас настроен прокси-сервер, он может обходить файл hosts. Решение состоит в том, чтобы не использовать прокси-сервер или настроить его таким образом, чтобы он этого не делал.
Для проверки откройте Internet Explorer -> Свойства обозревателя -> Подключения -> Настройки локальной сети. Если все пусто и установлен флажок "Автоматически определять настройки", вы не используете прокси-сервер.
Если вы используете прокси-сервер для доступа в Интернет и поэтому не хотите его отключать, вы можете добавить исключения, перейдя в Internet Explorer -> Свойства обозревателя -> Подключения -> Настройки локальной сети -> Прокси-сервер / Дополнительно. Затем добавьте свои исключения в текстовое поле «Исключения». например локальный;127.0.0.1;*.dev
8. DNS-адрес
(Это также может решить проблемы с прокси-сервером.)
Перейдите к свойствам сетевых подключений, затем к настройкам TCP/IP и измените первый DNS-сервер на 127.0.0.1 (localhost). Второй, вероятно, должен быть вашим фактическим IP-адресом DNS.
Это не обязательно для работы файла hosts, но может помочь в вашем случае, если что-то настроено странно.
9. .локальные адреса
Если вы используете запись домена .local в форме myhost.local и она игнорируется, попробуйте следующее:
10. Лимиты строк/количества
(добавлено к этому ответу, чтобы сделать его видимым, так как он упоминался несколько раз)
Похоже, что в файле хостов Windows есть ограничение на количество строк или хостов. Если у вас более 150 символов в строке или более 8 записей хостов для IP, создайте новую строку
Для решения различных проблем с ПК мы рекомендуем DriverFix:
Это программное обеспечение будет поддерживать работоспособность ваших драйверов, тем самым защищая вас от распространенных компьютерных ошибок и сбоев оборудования. Проверьте все свои драйверы прямо сейчас, выполнив 3 простых шага:
Возможно, вы пытаетесь связать определенные строки имен с определенными IP-адресами, чтобы переопределить другие методы разрешения имен. Однако браузер не может найти хост-файл или недавно сделанные изменения просто отказываются вступать в силу. Как заставить файлы hosts снова работать правильно?
Все изменения хостов должны вступить в силу немедленно. Вам не следует думать о перезагрузке браузера, компьютера или выполнении каких-либо дополнительных действий. Однако время от времени возникают непредвиденные проблемы.
Итак, если вы не совсем уверены, как решить эту проблему, мы собираемся вам помочь. Как всегда, есть несколько способов эффективно решить эту проблему. Приступим.
Что делать, если файлы Hosts не работают?
1. Основные шаги по устранению неполадок
- Убедитесь, что файл hosts назван правильно. Дважды проверьте, что это хосты, а не хост или что-то связанное.
- То же самое относится и к главе о расширениях. У него не должно быть расширения (hosts, а не hosts.txt). Если вы настроили Windows на скрытие известных расширений, снимите этот флажок.
- Другие пользователи, столкнувшиеся с той же проблемой, подтвердили, что ошибка связана с окончаниями строк. Поэтому изменение окончания строки в формате Windows может иметь значение. Обычно это пустое пространство, которое мешает вещам, потому что его очень трудно заметить.
2. Удалите старые данные и пропингуйте локальный хост
Если изменения сделаны правильно, вы должны сразу увидеть результаты. Несмотря на это, имейте в виду, что Windows кэширует данные разрешения имен. Поэтому старые записи могут еще некоторое время использоваться.
Вашим следующим шагом должно быть запуск командной строки и ввод: ipconfig /flushdns для удаления старых данных. Попробуйте пропинговать localhost и посмотреть, использует ли он правильный IP-адрес (он должен совпадать с тем, что вы указали в файле hosts).
Если это так, ваш файл hosts в порядке и проблема в другом месте. Если нет, то вы точно знаете, что файл плохой. Обратите внимание, куда он идет. Он может попробовать ipv6, поэтому сам файл hosts поврежден. Удалите из него все и оставьте только свою запись.
Если у вас возникли проблемы с доступом к командной строке от имени администратора, вам лучше ознакомиться с этим руководством .
3. Воссоздайте файл с разрешениями по умолчанию
- Создайте новый текстовый файл на рабочем столе.
- Скопируйте и вставьте содержимое текущего файла hosts в новый файл в Блокноте.
- Сохранить.
- Затем переименуйте его в hosts .
- Скопируйте файл в папку %SystemRoot%System32drivesetc. каталог и перезаписать старый файл.
Если Windows продолжает игнорировать хост-файл, создайте его заново с разрешениями по умолчанию.
4. Добавить исключения для прокси/отключить скрипт автоматической настройки
Совет эксперта. Некоторые проблемы с ПК трудно решить, особенно когда речь идет о поврежденных репозиториях или отсутствующих файлах Windows. Если у вас возникли проблемы с исправлением ошибки, возможно, ваша система частично сломана. Мы рекомендуем установить Restoro, инструмент, который просканирует вашу машину и определит, в чем проблема.
Нажмите здесь, чтобы загрузить и начать восстановление.
- Следуйте этому пути: Internet Explorer > Свойства обозревателя > Подключения.
- Либо нажмите клавишу Windows и введите "Настроить прокси-сервер".
- Нажмите "Настройки локальной сети".
- Если все пусто и установлен флажок Автоматически определять настройки, значит, вы не используете прокси-сервер.
- Если вы его используете, вы можете добавить исключения, вернувшись в «Подключения» > «Настройки локальной сети».
- Нажмите «Прокси-сервер/Дополнительно» и далее.
- Теперь вы можете добавить свои исключения в текстовое поле "Исключения".
Если у вас настроен прокси-сервер, сценарии автоматической настройки прокси-сервера могут переопределить файл hosts. Одним из решений здесь является настроить его так, чтобы он этого не делал.
При желании вы также можете отключить сценарий автоматической настройки. Просто не забудьте снять флажок Использовать сценарий автоматической настройки.
5. Проверить DNS-адрес
- Войдите в свойства сетевых подключений.
- Перейдите к настройкам TCP/IP.
- Измените первый DNS-сервер на 127.0.0.1 (localhost).
- Убедитесь, что второй адрес остается вашим фактическим IP-адресом DNS.
Вы также можете попробовать внести несколько изменений в отдел адресов DNS. Они не обязательны, но могут помочь, если что-то плохо настроено.
6. Создайте новый файл hosts
- Откройте проводник Windows от имени администратора.
- Удалите файл hosts.
- Откройте Блокнот также от имени администратора.
- Затем создайте новый файл hosts.
Вы все еще сталкиваетесь с той же проблемой? В этом случае другим эффективным решением является создание нового файла hosts. Начните с нуля, а затем добавляйте записи.
Приходит время, когда вы пытаетесь перенести свой веб-сайт с одного хоста на другой. Вы явно хотите убедиться, что веб-сайт работает правильно, прежде чем изменять настройки домена, но эти файлы hosts не работают.
Хотя быстрого решения этой проблемы не существует, вы можете попробовать приведенные выше рекомендации.Кроме того, вы можете поделиться своими мнениями, отзывами и другими вопросами, связанными с файлами hosts, в области комментариев ниже.
ЧИТАТЬ ДАЛЬШЕ:
По-прежнему возникают проблемы? Исправьте их с помощью этого инструмента:
Что делать, если ваш компьютер с Windows XP не распознает файл Hosts? Вот несколько возможных решений.
Недавно я столкнулся с этой дьявольской проблемой. Я хотел провести внутреннее тестирование веб-сайта в браузере на компьютере с Windows XP. Поэтому я добавил запись в файл hosts на компьютере с XP, которая будет перенаправлять joabj.com на внутренний IP-адрес сервера — в данном случае «192.168.0.33 joabj.com» (обычно в WinXP файл Hosts был находится в папке C:\WINDOWS\system32\drivers\etc). Тем не менее, браузер по-прежнему выдавал ошибки!
Оказалось, что браузер сначала обращался к внешней службе DNS и возвращал не ту страницу (в данном случае страницу моего кабельного модема).
Больше всего раздражает то, что инструменты командной строки файла хоста Windows (а именно, ping и SSH) распознают записи, а браузер нет!! Если я пропинговал свое доменное имя, введенное в файл Hosts (в данном случае "ping -a joabj.com"), он пропинговал правильный IP-номер ("ответ от 192.168.0.33:" и т. д.).
Блуждая по Интернету, я наткнулся на несколько различных решений этой проблемы:
*Перезагрузка: не только перезагрузка компьютера (да!), но и очистка кешей браузера, сброс DNS (в командной строке введите «ipconfig /flushdns»).
*Дополнительные пустые символы в файле Hosts: Очевидно, Windows не любит пустое пространство после записи, например, «192.168.0.33 joabj.com», а не «192.168.0.33 joabj.com». не добавляйте в пустое место.
*Поврежденный файл Hosts: Это может быть так, даже если он открывается в Блокноте. Попробуйте заменить существующий файл Hosts новым.
*Укажите точный поддомен в файле Hosts: это решение, которое в конечном итоге сработало для меня после того, как я попробовал все эти более сложные решения, описанные ниже.
Короче говоря, если вы планируете использовать адрес "www.YOURDOMAIN.com", вам следует ввести "www.YOURDOMAIN.com" в файл Hosts, а не просто "YOURDOMAIN.com".
*Редактор, добавляющий расширение к имени файла Hosts: Иногда текстовый редактор мог добавить .txt к имени файла во время сохранения, делая его Host.txt, а не просто Hosts. Конечно, тогда Windows не распознает файл Hosts, а Проводник по умолчанию не покажет суффиксы имен файлов.
При просмотре из Проводника установите параметры просмотра папки, чтобы отображались суффиксы. В Проводнике перейдите в Инструменты -> Параметры папки -> Просмотр и снимите флажок «Скрыть расширения для известных типов папок». Если Hosts имеет формат .txt, удалите .txt из имени файла.
*Приоритет отдается службе DNS-кэша XP: один сайт по устранению неполадок предположил, что это является вероятной причиной. В моем случае это не имело никакого значения.
Чтобы отключить эту службу, выберите Пуск-->Панель управления-->Администрирование-->Службы компонентов-->Службы(локальные). Затем найдите DNS-кэш и отключите его. Вы можете просто остановить службу, чтобы проверить, влияет ли она на нее, хотя она снова запустится при перезагрузке. Параметр «Вручную» просто означает, что служба запустится после запуска браузера. Параметр «Отключить» полностью отключает его, пока вы снова не включите его.
По словам других людей, которые пробовали это, отключение DNS-кэша не должно иметь негативных последствий для работы с DNS.
*Измените последовательность поиска DNS: обычно Windows XP обращается к локальному файлу Hosts, прежде чем обращаться к DNS-серверу для разрешения имени домена. Но иногда нет.
Вы меняете порядок поиска в реестре. (СТАНДАРТНОЕ ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: не лезьте в реестр, пока не поймете, что делаете).
Чтобы запустить редактор реестра, выполните команду "Пуск" -> "Выполнить" и введите "regedit" в поле.
В regedit перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ServiceProvider. Оказавшись там, вы увидите несколько записей, в том числе «DnsPriority», «HostsPriority», «LocalPriority» и «NetbtPriority», которые являются записями для поиска на основе DNS, поиска на основе файлов хостов, поиска на основе компьютера и NetBios. основанный поиск. (Подробнее об этом здесь).
В столбце данных для каждого вы видите число в скобках. Этот номер является приоритетом для этого поиска. Чем меньше число, тем раньше в последовательности разрешения доменных имен оно используется (очевидно, диапазон находится между -32768 и 32767). Если номер DNS меньше, чем номер хоста, то вы хотите присвоить номеру хоста меньшее число, чем номер DNS.
Поэтому, если DnsPriority равен 5000, а Hosts – 7000, вы можете изменить Hosts, скажем, на 4500
Имейте в виду, что когда вы устанавливаете номер, щелкнув правой кнопкой мыши запись и выбрав "изменить", вы просто не сможете добавить номер как есть – вам придется ввести новый номер либо в шестнадцатеричном, либо в шестнадцатеричном формате. двоичный.
Один из простых способов преобразовать число в шестнадцатеричное – вызвать калькулятор Windows, переключить представление со стандартного на научное, а затем ввести число в поле для ввода числа. После того, как число введено, найдите, где в верхней части калькулятора выбрано «dec», и переключите его на «hex».
Читайте также: