Система доменных имен DNS используется для определения, какой IP принадлежит к нужному домену в сети интернет. Когда какой-либо программе понадобится обратиться к сайту по его доменному имени, операционная система отправляет к DNS-серверу запрос, чтобы узнать, по какому IP ей дальше передавать пакеты. Но так происходит не всегда. Например, когда мы обращаемся к домену localhost, то всегда запрос отправляется нашему локальному компьютеру.
Всему причиной файл hosts. Если вы раньше пользовались Windows, то, наверное, уже слышали о таком файле. Там чаще всего он использовался для того, чтобы быстро заблокировать доступ к какому-либо ресурсу. Но применение его гораздо шире. В этой статье мы рассмотрим, как настроить файл hosts в Linux, а также какие возможности он нам предоставляет.
Содержание статьи
Разрешение доменных имён в Linux
Прежде чем мы перейдём к самому файлу hosts, нужно разобраться, как происходит поиск IP-адреса для доменного имени в Linux. Я говорил, что операционная система сразу же отправляет запрос DNS-серверу, но это не совсем так. Существует определённый порядок поиска, согласно которому он выполняется. Этот порядок установлен в конфигурационном файле /etc/nsswitch.conf
cat /etc/nsswitch.conf
Здесь нас интересует строчка hosts. В ней в порядке очередности записаны службы, которые используются для поиска IP-адреса для доменного имени. Пункт files означает использование файла /etc/hosts, а dns - сервиса доменных имён интернета. Если files расположена перед hosts, это означает, что сначала система попытается найти домен в /etc/hosts, а уже потом по DNS. По умолчанию дело обстоит именно так.
Настройка файла hosts в Linux
Нужный нам файл находится в директории /etc/. Для его открытия можно использовать любой текстовый редактор как в командной строке, так и в графическом интерфейсе, только открывать его нужно с правами суперпользователя. Например, с помощью vim:
sudo vi /etc/hosts
Или gedit:
sudo gedit /etc/hosts
Синтаксис файла довольно простой. В нём находится несколько строчек с доменными именами и IP-адресами, которые нужно для них использовать. Каждая из них выглядит вот так:
ip_адрес домен алиас
Обычно первая же строчка создаёт правило для перенаправления всех запросов к домену localhost на локальный IP-адрес - 127.0.0.1:
Также в этом файле по умолчанию размещаются перенаправления для имени вашего компьютера и для IPv6-адресов. Вы можете создать свои настройки для любого нужного домена. Для этого нужно добавить строчку в конец файла. Например, направим все запросы к домену losst.pro на ip 127.0.0.1:
Обратите внимание, что здесь указывается только домен, без протокола. Префикс http или https указывать не нужно, иначе ничего работать не будет. А вот для поддомена www нужно создавать отдельную запись или записывать его в виде алиаса. Например:
Теперь при запросе домена losst.pro будет открываться наш локальный IP. Чтобы вернуть доступ к оригинальному ресурсу, достаточно убрать добавленную строчку. Но вы можете использовать не только локальный адрес, но и любой другой. Это очень удобно, если вы только зарегистрировали домен и доменная зона ещё не успела обновиться, а вы уже хотите работать с новым сайтом. Просто добавьте данные в /etc/hosts и работайте как обычно.
Выводы
В этой небольшой статье мы разобрали, как выполняется настройка DNS через файл hosts Linux. Как видите, с его помощью вы можете блокировать доступ к нежелательным ресурсам, например, к которым программы не должны получить доступ, а также использовать его в работе веб-мастера.
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали










vi предлагаете тем, кто не знает что такое hosts?
Мдя. 🙂
Запустить vim-то они запустят... а, вот, как они из него выходить будут?
Изредка почему-то пробивает на "ха-ха".
"Как пользоваться Vim" - прямо перед глазами как только на страничку попадаешь. Справа крупная плашка оранжевого цвета 🙂
Хотя согласен, vi не самая простая вещь для новичков.
Рискну предложить чё попроще
sudo nano -g /etc/hosts
Я тоже считаю vim не лутшим вариантом поентому sudo pluma /etc/hosts
Мне кажется последнее время статьи ну слишком уже глупые, ну просто совсем. Выглядит как домашняя работа школьника.
вам не кажется... :)))
Будьте терпимее. Linux изучают люди с разным уровнем подготовки. Я лично благодарен автору этого сайта. Человек тратит свое личное время. Благодаря таким сайтам я окончательно перешел на Linux. То, что год назад казалось непонятным, сейчас воспринимается элементарным.
"Если files расположена перед hosts"
Что за hosts такой?
"Благодаря таким сайтам я окончательно перешел на Linux."
То есть, на Linux Вы перешли исключительно ради его изучения?
Единственная развлекуха в линукс, это изучать линукс. (с)
> Например, с помощью vim:
> sudo vi /etc/hosts
Ну и где здесь vim?
Вы хоть читаете, то что пишите?
Наберите в терминале команду:
sudo vi /etc/hosts
Вы будете неприятно удивлены. Откроется редактор vim.
Отличная статья, врядле в хосты надо тому кто с редакторами не знаком.
Автору + в Карму !
открыл vim еле закрыл
Здравствуйте. Мне нужно сравнить файлы с 3 виртуальных машин, находящихся по одному адресу /home/user/test. IP адреса необходимо брать из файла /etc/hots.
Не найду информацию, как именно через hosts подключаться
"То есть, на Linux Вы перешли исключительно ради его изучения?"
Какой логикой вы руководствовались генерируя сей сопрос?
Ну, налетели холиварщики и нарциссы.
Вполне годная статья, особенно, как быстрая справка для начинающих.
Автору спасибо.
Неплохо аффтар, тока лучше так пипсать: sudo nano /etc/hosts ато не фсе знают шо за vim тфкой а тем паче vi. А есче расскажи про то, как в nano копировать выделенный блок в буфер обмана и фставлять оттуда обратно т.к Ctrl+C и Ctrl+V в >>NANO<>>MICRO<<< поставить (с micro будет так: sudo micro /etc/hosts), там как раз все это канает: Ctrl+C, +V, +S, +Q и к стати -=}MICRO{=- есть для MS Windows тоже и в нем все есть, что нужно для редактирования, не только простого текста, но и кроссплатформенного кода, если говорить про GNU/Linux и MS Windows, про MAC не знаю=))))
Аффтар - Респект! А какие программы есть для аффтаматического бана трекеров и всяких прочих вредоносов, например со стороны твоего провайдера в файле hosts? Да и что означают файлы /etc/hosts.allow и /etc/hosts.deny?