Все статьи

Что такое файл Hosts и для чего он используется

19 авг 20231912

Чтобы получить доступ к сайтам в сети, мы пользуемся DNS-серверами, преобразовывающими «числовые» IP-адреса в понятные текстовые домены и наоборот. Эти сервера принадлежат не нам и повлиять на них мы не можем. Зато можно использовать файл Hosts для прямого указания соответствия нужных серверов и доменов. Где найти этот файл и как его правильно корректировать — тема данной статьи.

Для чего нужен файл hosts

Доступ к сайтам в интернете осуществляется по их IP-адресам. Для ходового протокола адресации IPv4 такой адрес представляет собой четыре числа от 1 до 255, разделенных точками. Более современный протокол IPv6 имеет адреса из восьми шестнадцатеричных чисел.

 Протокол IP позволяет создать масштабную сеть из уникальных адресов, но они сложны для запоминания

Чтобы обращаться к сайтам и ресурсам «по имени», были придуманы доменные имена — символьные и удобные для восприятия. Доступные в интернете сайты чаще всего имеют домен, соответствующий своему IP-адресу. Связь между доменным и числовым адресом осуществляется с помощью системы доменных имен DNS.

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

Однако прежде чем обратиться к DNS-серверу (они определяются провайдером автоматически, но можно задавать и вручную), компьютер ищет информацию в файле hosts.

Схема отправки запросов DNS

Файл имеется во всех операционных системах. Его суть та же, что и у DNS-сервера: сопоставлять доменные имена с IP-адресами. Только при его использовании не нужно обращаться к серверным сетям в интернете: все данные доступны устройству сразу же.

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

Где располагается файл hosts

Файл hosts является системным и не имеет расширения. Ниже приведены места расположения файла в различных операционных системах:

Android
Операционная система Место расположения файла hosts
Windows
C:\Windows\System32\Drivers\etc
Linux и аналоги etc/hosts
MacOS, iOS /private/etc/
Android
 /system/etc/
В Windows файл hosts можно открыть через меню правой кнопки мыши, например в «Блокноте»

Учитывая, что hosts является системным, нужно заблаговременно открыть доступ к просмотру таких файлов. В Windows это делается так: открыв любую папку в «Проводнике», войдите в меню «Файл», а затем — «Параметры»:

Настройка отображения скрытых и системных файлов в Windows

На вкладке «Вид» всплывающего окна свойств папки настройте отображение скрытых и (если понадобится) системных файлов. Так файл hosts откроется для редактирования.

Как скорректировать файл

Открыв файл hosts для редактирования (для удобства лучше использовать программу с более интересными возможностями, например – Notepad++), вы можете вручную указывать соответствия доменных и IP-адресов.

Но для начала рассмотрим системное содержание hosts:

Изначальное содержание файла hosts

В тексте файла с помощью строк-комментариев, определяемых знаком «решетки», рассказано как заполнять таблицу соответствия. Кроме того, система сообщает о наличии адреса для обозначения локального хоста localhost.

Localhost — это адрес вашего компьютера, для которого всегда зарезервирован IP 127.0.0.1. Ни один сайт или сервер в интернете не может иметь такого адреса, как и названия localhost. Зато по нему можно обратиться к своему устройству напрямую.

Собственно, host (хост) — это обозначение ресурса, определяемого адресами. Файл hosts позволяет прописывать хосты, т. е. связки домена и IP для определения этих ресурсов.

После описания можно создавать свои строки. Вот правила для их верного заполнения:

  • Каждая запись-связка располагается на отдельной строке.
  • Сначала должен быть указан IP-адрес хоста, например «123.45.67.89».
  • Затем следует разделитель — пробел или табуляция.
  • Далее указывается доменное имя ресурса, например «test.ru».

Мы уже знакомы с комментариями, начинающимися с «#». Их можно использовать и в строке таблицы файла hosts, после того как определены адреса хоста для связки.

Примеры строк для прописывания в hosts

После сохранения файла устройство сразу начнет обращаться к заданному в нем IP-адресу, если где-то используется соответствующее доменное имя. Не только в браузере, приложения также обращаются к ресурсам в интернете.

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

Для чего нужна корректировка файла hosts

Поскольку устройство для определения адреса по доменному имени обращается сначала к hosts, то его можно использовать различным образом для ускорения загрузки сайтов или направления запросов к нужным IP.

Администраторы локальных сетей могут редактировать hosts, чтобы использовать более доступные локальные сервера при обращении к интернет-ресурсам.

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

Авторедирект с google.com на google.ru через hosts

В примере выше мы автоматически заставляем систему обращаться к серверу google.ru при вводе адреса google.com. Дело в том, что для России редирект на локальную площадку произойдет в любом случае, а так браузер сразу обратится к нужному серверу и ускорит загрузку сайта.

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

Например:

  • mc.yandex.ru — доменный адрес Яндекс.Метрики, используемой для отслеживания действий пользователя;
  • audience.yandex.ru — сбор данных об аудитории;
  • partner.yandex.ru — партнерские сети Яндекса;
  • direct.yandex.ru — реклама от Яндекс.Директ (только если вы сами с ней не работаете).

Не забываем, что вносить в таблицу нужно не только такие доменные имена, но и имена с www.

Наборы доменов рекламных площадок и сервисов сбора информации о пользователе можно найти в интернете, однако порой проще установить расширение-блокировщик на браузер.

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

Как восстановить оригинальный файл hosts

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

Делается это достаточно просто — нужно создать в системной папке пустой текстовый файл, а затем скопировать в него оригинальный текст, задать название «hosts» и удалить расширение.

Если там уже есть старый файл hosts, его можно переименовать, например в hosts.old.

Текст для разных ОС будет различаться, его можно взять с сайтов поддержки:

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

FAQ: часто задаваемые вопросы

Какой формат имеет файл hosts, и какие данные можно указывать в нем?

Файл имеет формат plain text, то есть обычный текст (txt). В нем можно использовать текстовые строки строго по правилам, заданным в тексте выше.

Можно ли использовать файл hosts для перенаправления трафика на другие IP-адреса?

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