Успей заказать VPS-сервер со скидкой 15%
Акция завершится через
00Дней
:
00Часов
:
00Минут
:
00Секунд

Файл hosts: что это, где лежит и как его редактировать

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

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

Астронавт с записной книжкой hosts соединяет домены с IP-адресами в обход облака DNS
Файл hosts - это локальная записная книжка соответствий домен - IP, к которой система обращается раньше, чем к DNS.

Зачем вообще нужен файл hosts

Когда вы открываете в браузере любой адрес, система сначала должна превратить домен в IP. По умолчанию этим занимается DNS. Но перед тем как идти к DNS-серверу, ОС заглядывает в локальный файл hosts. Если нужная запись там есть - система использует ее и в DNS вообще не обращается.

Из этого вырастает несколько вполне практичных сценариев.

  • Проверить новый сервер до переноса DNS. Вы заказали VPS, развернули сайт, но домен еще указывает на старый хостинг. Прописав в hosts связку «домен → новый IP», вы увидите сайт на новом сервере только у себя, ничего при этом не ломая для остальных посетителей.
  • Локально заблокировать домен. Указав для домена адрес или , вы закрываете к нему доступ на конкретной машине - так работают многие самодельные блокировщики рекламы и родительский контроль.
  • Обойти кривой или подмененный DNS. Если DNS-резолвер выдает неправильный ответ, временная запись в hosts позволяет достучаться до сервиса напрямую.
  • Работа в локальной сети и разработка. Удобно завести себе понятные имена вроде для машин без публичных доменов.

Важная оговорка: hosts действует только на той машине, где вы его правите. Это не настройка домена и не замена DNS для всего мира - посетители вашего сайта изменений в вашем hosts не увидят.

Как выглядит файл hosts внутри

Содержимое предельно простое. Каждая строка - это IP-адрес, затем один или несколько пробелов (или табуляция), затем доменное имя. Строки, начинающиеся с символа , считаются комментариями и игнорируются.

Здесь - это всегда сам локальный компьютер (loopback), а - его же адрес в формате IPv6. Эти две строки трогать обычно не нужно: на них завязана корректная работа системы.

Схема порядка разрешения имени: устройство, затем hosts, затем DNS
Сначала система проверяет hosts, и только если подходящей записи нет, запрос уходит в DNS.

Где находится файл hosts

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

Операционная системаПуть к файлу hosts
WindowsC:\Windows\System32\drivers\etc\hosts
Linux/etc/hosts
macOS/etc/hosts

Во всех трех системах для редактирования hosts нужны права администратора (root). Без них файл откроется только на чтение, и сохранить изменения не получится.

Как отредактировать hosts в Windows

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

  1. Нажмите «Пуск», начните вводить Блокнот.
  2. Кликните по нему правой кнопкой и выберите Запуск от имени администратора.
  3. В Блокноте откройте файл через меню «Файл → Открыть» и перейдите по пути .
  4. В поле типа файлов выберите «Все файлы», иначе hosts (он без расширения) просто не будет виден.
  5. Откройте , внесите нужные строки и сохраните обычным Ctrl + S.

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

Как отредактировать hosts в Linux

На сервере проще всего работать через SSH и консольный редактор nano. Команду нужно выполнять от root или через .

Добавьте нужную строку в конец файла, например, чтобы домен указывал на конкретный сервер:

Сохраните файл сочетанием Ctrl + O и подтвердите имя клавишей Enter, затем выйдите из редактора через Ctrl + X. Изменения вступают в силу сразу, перезагрузка сервера не требуется.

Альтернатива: добавить строку одной командой, без редактора

Иногда удобно дописать запись в hosts одной командой. Может возникнуть соблазн использовать перенаправление , но не сработает: перенаправление выполняет сама оболочка от вашего имени, а не от root. Поэтому берут с флагом (от append) - он дописывает строку в конец файла от имени root. Без команда перезаписала бы весь файл.

Как отредактировать hosts в macOS

В macOS путь тот же, что и в Linux. Откройте «Терминал» и выполните:

Система запросит пароль администратора. Дальше все так же: добавляете строку, сохраняете Ctrl + O, выходите Ctrl + X. После правки в macOS иногда полезно сбросить кэш DNS, чтобы изменения подхватились наверняка:

↙ Для копирования нажмите на строку

Как проверить, что запись в hosts работает

После правки стоит убедиться, что система действительно резолвит домен в нужный IP. Самый простой способ - команда : в ее выводе видно, на какой адрес уходит запрос.

Если в ответе указан тот IP, который вы прописали в hosts, - запись применилась. Учтите, что многие серверы не отвечают на ping (ICMP закрыт фаерволом), и это нормально: важна именно строка с резолвом адреса, а не сами ответы. На Windows для проверки удобнее , но он показывает ответ DNS и hosts может игнорировать - поэтому именно для hosts надежнее ориентироваться на или на реальное открытие сайта в браузере.

Если изменения не подхватываются, очистите кэш DNS. В Windows - командой в консоли, запущенной от администратора. В Linux это зависит от используемого резолвера (например, или перезапуск ).

Астронавт защищает файл hosts от попытки вписать в него поддельную строку
hosts проверяется раньше DNS, поэтому его любят вирусы - заглядывайте в файл время от времени.

Безопасность: почему hosts любят вирусы

Раз hosts проверяется раньше DNS, он становится лакомой целью для вредоносного ПО. Классический прием фишинга - дописать в hosts строку, которая уводит банковский или почтовый домен на поддельный IP. Пользователь набирает привычный адрес, а попадает на сайт-клон.

Поэтому есть смысл время от времени заглядывать в свой hosts. Если вы видите там незнакомые строки с известными доменами (банки, соцсети, почта), которых вы туда не добавляли, - это повод насторожиться и проверить систему антивирусом.

Перед любой правкой hosts полезно сохранить его копию. На Linux это одна команда: . Если что-то пойдет не так, вы всегда вернете исходное состояние.

Частые ошибки при работе с hosts

  • Файл сохранен с расширением. В Windows Блокнот любит добавить , и получается - такой файл система не читает. Имя должно остаться ровно , без расширения.
  • Нет прав администратора. Самая частая причина «не сохраняется». Редактор должен быть запущен от имени администратора (Windows) или команда выполнена через (Linux/macOS).
  • Лишние пробелы или табы не разделяют IP и домен. Между адресом и именем должен быть хотя бы один пробел или табуляция. Слепленные вместе работать не будут.
  • Забыли про кэш DNS. Иногда правка верна, но старый ответ еще кэширован - помогает сброс кэша и перезапуск браузера.
  • Случайно удалили строку localhost. Строки и лучше не трогать: на них завязана работа системных сервисов.

Коротко о главном

Файл hosts - это локальная таблица соответствия «домен → IP», к которой система обращается раньше, чем к DNS. Он не настраивает домен глобально и действует только на одной машине, но именно поэтому удобен: им можно безопасно проверить новый сервер до переноса DNS, локально закрыть доступ к домену или обойти сбойный резолвер.

Если вы переносите проект на новый сервер и хотите проверить его на своем домене до смены DNS, добавьте в hosts связку «ваш домен → IP нового VPS». Так вы убедитесь, что сайт корректно поднялся на новой площадке, еще до того как пустите на нее реальных посетителей. Серверы SpaceCore с полным root-доступом позволяют развернуть и проверить окружение именно по такому сценарию - без спешки и простоя для пользователей.

Частые вопросы

Нужно ли перезагружать компьютер после правки hosts?

Нет. Изменения применяются сразу. Иногда требуется только закрыть и открыть браузер или сбросить кэш DNS, если старый ответ закэширован.

Можно ли указать один IP для нескольких доменов?

Да. Каждый домен пишется отдельной строкой с одним и тем же IP, либо несколько имен можно указать в одной строке через пробел после адреса.

Чем отличается 127.0.0.1 от 0.0.0.0 при блокировке домена?

Оба варианта «отправляют» домен в никуда на локальной машине. заворачивает запрос на сам компьютер (и иногда вызывает короткую задержку при попытке соединения), а чаще приводит к мгновенному отказу. Для блокировки обычно предпочитают .

Почему запись в hosts не работает?

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