Файл hosts в Linux: как управлять доступом к сайтам без DNS

Файл hosts в Linux: как управлять доступом к сайтам без DNS

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

Этот файл — /etc/hosts. Он позволяет вам вручную указать, на какой IP-адрес должен вести тот или иной домен, и система будет слушаться именно его, игнорируя глобальные DNS-серверы.

Хотите быстро запретить программе доступ к определённому серверу? Добавьте одну строчку. Домен вашего нового сайта ещё не прописался в интернете, а работать нужно прямо сейчас? Файл hosts — ваше спасение.

В отличие от Windows, в Linux процесс разрешения имён имеет свою чёткую последовательность. Сначала система заглядывает именно в этот файл, и только потом обращается к DNS. Это даёт вам приоритет и полный контроль.

Вы узнаете, как легко редактировать этот файл с помощью sudo и любого текстового редактора, будь то Vim или Gedit. Его синтаксис до безобразия прост: IP-адрес, пробел, доменное имя. Всё.

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

Готовы взять управление сетью в свои руки и открыть для себя новые возможности? Читайте статью, и вы больше никогда не будете зависеть от капризов DNS!


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

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


Содержание статьи

Разрешение доменных имён в Linux

Прежде чем мы перейдём к самому файлу hosts, нужно разобраться, как происходит поиск IP-адреса для доменного имени в Linux. Я говорил, что операционная система сразу же отправляет запрос DNS-серверу, но это не совсем так. Существует определённый порядок поиска, согласно которому он выполняется. Этот порядок установлен в конфигурационном файле /etc/nsswitch.conf

cat /etc/nsswitch.conf

Файл hosts в Linux: как управлять доступом к сайтам без DNS

Здесь нас интересует строчка hosts. В ней в порядке очередности записаны службы, которые используются для поиска IP-адреса для доменного имени. Пункт files означает использование файла /etc/hosts, а dns - сервиса доменных имён интернета. Если files расположена перед hosts, это означает, что сначала система попытается найти домен в /etc/hosts, а уже потом по DNS. По умолчанию дело обстоит именно так.

Настройка файла hosts в Linux

Нужный нам файл находится в директории /etc/. Для его открытия можно использовать любой текстовый редактор как в командной строке, так и в графическом интерфейсе, только открывать его нужно с правами суперпользователя. Например, с помощью vim:

sudo vi /etc/hosts

Или gedit:

sudo gedit /etc/hosts

Файл hosts в Linux: как управлять доступом к сайтам без DNS

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

ip_адрес домен алиас

Обычно первая же строчка создаёт правило для перенаправления всех запросов к домену localhost на локальный IP-адрес - 127.0.0.1:

127.0.0.1 localhost

Также в этом файле по умолчанию размещаются перенаправления для имени вашего компьютера и для IPv6-адресов. Вы можете создать свои настройки для любого нужного домена. Для этого нужно добавить строчку в конец файла. Например, направим все запросы к домену losst.pro на ip 127.0.0.1:

127.0.0.1 losst.pro

Файл hosts в Linux: как управлять доступом к сайтам без DNS

Обратите внимание, что здесь указывается только домен, без протокола. Префикс http или https указывать не нужно, иначе ничего работать не будет. А вот для поддомена www нужно создавать отдельную запись или записывать его в виде алиаса. Например:

127.0.0.1 losst.pro  www.losst.pro

Файл hosts в Linux: как управлять доступом к сайтам без DNS

Теперь при запросе домена losst.pro будет открываться наш локальный IP. Чтобы вернуть доступ к оригинальному ресурсу, достаточно убрать добавленную строчку. Но вы можете использовать не только локальный адрес, но и любой другой. Это очень удобно, если вы только зарегистрировали домен и доменная зона ещё не успела обновиться, а вы уже хотите работать с новым сайтом. Просто добавьте данные в /etc/hosts и работайте как обычно.

Выводы

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

Оставить комментарий


Кликните на изображение чтобы обновить код, если он неразборчив