В этой статье подробно рассмотрим, как работает файл hosts и как внести в него изменения.
Что такое файл hosts и зачем он нужен
Кроме того, hosts можно использовать, если вам нужно настроить запрет доступа к какому-либо сайту на вашем компьютере. Чтобы это сделать, для сайта понадобится прописать некорректный IP.
Нам, пользователям необходимо просто ввести в адресную строку браузера домен нужного сайта. И нам нет никакой надобности заморачиваться всей технической подноготной этого процесса. За исключением некоторых случаев. Каких случаев, и как добавить нужный сайт в файл hosts – обо всём этом ниже.
Другой случай, когда в файле hosts нужно прописать соответствие IP сайта домену – это тестирование сайтов их владельцами. Обновление баз данных служб может занять от нескольких часов до нескольких дней. И если у сайта изменён IP или домен, если домен недавно зарегистрирован, можно не ждать эти несколько часов или дней, пока обновится информация службы . И протестировать сайт в окне браузера прямо сейчас, внеся соответствие его IP домену в файл hosts.
Как в файл hosts добавить нужные нам сайты?
Открываем программу, в её разделе «Дополнительно» кликаем «Редактор hosts».


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

Далее просто закрываем блокнот и в окне запроса о сохранении кликаем «Сохранить».

Если при изменении DNS-записей, кеш DNS Вашего провайдера ещё не обновился, или Вам необходимо получить доступ к сайту на новом или старом сервере без изменения DNS, только с Вашего ПК, Вам необходимо добавить соответствие домена с IP в файле hosts
Узнать, по какому IP ищется с Вашего ПК домен, Вы можете, например, командой ping.
Для этого находим “Командная строка” в меню пуск(после нажатия “Пуск” вы можете просто набрать “cmd” или “командная строка”)

И пишем ping example.com, где example.com – интересующий Вас сайт.

Для добавления соответствия домена с IP в файле hosts находим “Блокнот” или иной текстовый редактор в меню “Пуск” или любым иным удобным для Вас способом и, нажав правой кнопкой, выбрать пункт “Запуск с правами ”

Запрашивается пароль администратора или подтверждение повышения прав. Вводим пароль и соглашаемся.


И открываем файл c:windowssystem32driversetchosts

По умолчанию, файл имеет такое содержимое:


Проверяем. I P должен был измениться. В редких случаях может потребоваться перезагрузка ПК и/или очистка временных файлов браузера.

Что такое Переключатель сервисов имён в Linux (Name Service Switch)
Перед тем, как продолжить, вы должны понимать несколько вещей о другом важном файле, который расположен в /etc/nsswitch.conf. Он обеспечивает функции Переключателя сервисов имён, что означает, что он контролирует порядок (приоритет) в котором опрашиваются службы запросах к сервисам преобразования имени.
Подробно этот файл и его функции описаны в статье «Как в Linux определяется порядок источников для разрешения имён (приоритет файла hosts и DNS)».
Если коротко, то за используемые для преобразования имён хостов службы перечислены в строке, которая начинается на «hosts:», пример данной строки:
Если в этой строке на первом месте слово «files» расположено перед словом «dns», то это означает, что для запросов к службе имён в начале делается запрос к файлу /etc/hosts, а затем к DNS. Но если слово «dns» стоит до «files», то при поиске IP адреса домена в начале будет сделан запрос DNS, и если не получено значение, то будут опрошены другие соответствующие службы или файлы.
Для наших целей важно, чтобы в строке «hosts:» присутствовало слово «files». А если вы хотите в файле /etc/hosts сделать записи для реальных доменных имён (например, для zalinux.ru), то необходимо, чтобы слово «files» в этой строке стояло раньше слова «dns», иначе вначале будет делаться запрос к DNS серверу, который будет возвращать IP сайта и очередь для получения IP из /etc/hosts не дойдёт
Проверьте содержимое этого файла:

Или просто посмотрите нужную строку:
grep hosts /etc/nsswitch.conf
DNS (система или служба доменных имён) — это иерархическая, децентрализованная служба/система наименования и перевода доменных имён в IP адреса в Интернете или в приватной сети, а также серверы, которые предоставляют такой сервис и называют DNS серверами.
Эта статья объясняет, как настроить локальный DNS используя файл /etc/hosts в системах Linux для локального разрешения доменов или тестирования веб-сайтов перед размещением их на доступном глобально веб-сервере.
Например, изменив файл /etc/hosts на своей локальной системе, чтобы в нём содержалась запись связывающая доменное имя с IP, вы можете протестировать сайт в идентичном окружении, как если бы он был размещён на реальном доменном имени. Такой подход позволит проверить работу, например, абсолютных ссылок, которые включают в адресе также и домен. Даже работу SSL сертификата таким образом можно проверить на локальной машине до того, как сделать это на рабочей сервере.
Ещё одно применение локального разрешения имён в файле /etc/hosts — создание коротких, легко запоминающихся имён для других устройств и компьютеров в локальной сети, благодаря чему можно будет вместо ввода IP адреса указать понятное имя «kali» или «files» для доступа к другому компьютеру по SSH или на его веб-сервер.
/etc/hosts — это файл операционной системы, который переводим имена хостов или имена доменов в IP адреса.
Внимание: если в вашей сети компьютерам IP адрес назначается автоматически при каждой загрузке, то при следующем включении IP может измениться и вы не сможете подключиться к устройству по имени, так как оно будет указывать на старый IP. Чтобы этот метод работал и после перезагрузки, настройте статические IP адреса для всех устройств, к которым вы будете обращаться по имени хоста, и которые вы добавите в файл hosts.
Для целей настоящей статьи мы будем использовать следующий домен, имена хостов и IP адреса (используйте значения в соответствии с вашей локальной сетью).
Домен: hackware.lan
Хост 1: kali.hackware.lan 192.168.1.60
Хост 2: mint.hackware.lan 192.168.1.70
Хочу рассказать о несколько нестандартном способе с помощью которого можно открывать в браузере сайты, используя короткие имена. Например, вместо того чтобы набирать в браузере «yandex.ru» можно просто набрать одну букву «y». Поможет нам в этом файл /etc/hosts.
Файл /etc/hosts
В файле /etc/hosts задаются соответствия между IP адресом и именем хоста (hostname, домен), а также их псевдонимами (также называются, синонимами, алиасами). Когда вы обращаетесь к какому-нибудь адресу в сети, например, http://yandex.ru, то для доступа к сайту системе требуется вначале преобразовать адрес сайта в соответствующий ему IP адрес, для этого система запрашивает IP адрес у DNS сервера. Если в файле /etc/hosts прописано соответствие между yandex.ru и IP адресом, тогда система будет использовать именно этот IP адрес. А так как мы можем в файле /etc/hosts указать еще и псевдоним, по которому будет доступен конкретный IP адрес, то мы можем указать, например, для yandex.ru псевдоним «y». Соответственно, при запросе «y» в своем браузере, система прочитает IP адрес в файле /etc/hosts и откроет сайт yandex.ru. То есть /etc/hosts, это своего рода локальный DNS сервер.
Как узнать IP адрес сайта
Теперь нам нужно определить IP адреса сайтов, которые мы хотим добавить в /etc/hosts. Стоит отметить, что не все сайты имеют отдельный выделенный IP адрес и получить к ним доступ только по IP адресу нельзя. Но почти все крупные сайты и порталы имеют свой выделенный IP адрес. Простой способ узнать IP адрес сайта это использовать командну ping:
На экране отобразится процесс пинга (чтобы прервать нажмите Ctrl+C). Итак, мы получим вывод команды ping вида:
Здесь видно, что yandex.ru соответствует IP адресу 87.250.250.11. Аналогично, выполняем для других сайтов.
Редактирование файла /etc/hosts
Редактировать файл /etc/hosts нужно осторожно, чтобы ничего не испортить, так как это системный файл и важно не нарушать его синтаксис. Откройте файл для редактирования, для этого выполните в командной строке:
sudo gedit /etc/hosts
Содержимое файла выглядит примерно следующим образом:
Синтаксис у файла /etc/hosts очень простой:
Добавим в файл новые строки для разных сайтов:
74.125.232.19 google.ru g
94.100.191.203 mail.ru m
194.186.36.211 rbc.ru r
87.250.250.11 yandex.ru y
Сохраните и закройте файл. Мы прописали соответствия между IP адресами, именами сайтов и их псевдонимами. Теперь перейдите в браузер и в адресной строке введите просто «g», должен открыться сайт google.ru. Чтобы открыть mail.ru введите просто «m», для rbc.ru — просто «r», yandex.ru — «y».
Войдите, чтобы ставить лайки
Если вам нужно разблокировать сайты, к которым вы ограничили доступ, это возможно. Есть два варианта:
Как внести изменения в файл hosts и где он находится
Для внесения изменений можно использовать любой текстовый редактор. Например, для ОС Windows — Блокнот, Linux — VIM или Nano, macOS — TextEdit. Обращаем внимание: чтобы редактировать и сохранять изменения в файле hosts, необходимо его открыть с правами администратора.
Расположение файла зависит от вашей операционной системы:
Рассмотрим подробно внесение изменений в каждой из вышеуказанных операционных систем.
Как отредактировать файл hosts в macOS
Где находится hosts macOS? Файл hosts размещается на macOS в каталоге /private/etc/hosts. Чтобы внести в него изменения:
Мы разобрали как отредактировать файл в популярных операционных системах. Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
Как изменить файл hosts
Как заблокировать сайт через Hosts
Чтобы настроить блокировку в Windows, нужно снова найти и открыть сам файл по тому же пути, о котором мы уже писали выше: c:windowssystem32driversetc. Файл hosts необходимо открыть через программу «Блокнот» и не забудьте, что важно это делать от имени администратора.
Заблокировать сайты получится, когда вы внесете в файл hosts следующие цифры: 127.0.0.1. Это локальный адрес файла на компьютере. После этого нужно ввести сами адреса сайтов без указания http/https. Сайты необходимо указать через пробел между локальным адресом и доменным именем.
Как это работает? После того, как вы внесете этот адрес рядом с физическим адресом веб-сайта, запрос операционной системы будет приходить сам по себе, при этом сайт, который вы указали в файле hosts после, будет исключен.
На финальном этапе вам нужно только сохранить изменения.
Как восстановить оригинальный файл hosts Windows 10
По умолчанию файл hosts должен выглядеть на Windows 10 следующим образом:
Чтобы восстановить его на вашем компьютере, следуйте инструкции:
Блокировка доступа к сайту через файл hosts
Каждый , прежде чем открыть какой-либо сайт, обращается за данными к файлу hosts, в который также можно внести информацию, чтобы доступ к ресурсу был запрещен.
Зачем это нужно? Причины могут быть самые разные. К примеру, родители могут таким образом настроить ограничение для ребенка, чтобы он не посещал вредоносные сайты и не смотрел нежелательный контент. Или работодатель может таким образом запретить доступ к развлекательным сайтам для своих сотрудников в рабочее время.
Hosts — это своего рода инструмент, который помогает администрировать и следить за ресурсами компьютера в глобальной сети.
Локальная настройка DNS используя файл /etc/hosts в Linux
Теперь откройте файл /etc/hosts используя любой текстовый редактор:
Добавьте в этот файл строки в формате:
Например, для моих данных я добавляю:
Сохраните и закройте файл.
Изменения, внесённые в файл hosts, вступают в силу немедленно.
Далее проверьте, что всё работает как и ожидается. Выполним пинг первого хоста командой ping. Для других хостов можно сделать аналогичную проверку:
ping -c 4 kali.hackware.lan
Или используем сокращённый псевдоним:

На хосте kali.hackware.lan у меня запущен веб-сервер, поэтому я могу получить к нему доступ в веб-браузере, набрав адрес http://kali.hackware.lan/ или более короткий псевдоним http://kali.

Важно: обращаться по этим именам к другим компьютерам я могу только с тех систем, где добавлены аналогичные записи в файл /etc/hosts.
Если вы попытаетесь проверить IP адрес с помощью команды dig, nslookup или host, то для локальных хостов не будут найдены записи. Дело в том, что эти команды только делает запросы к DNS серверу и игнорируют настройки в файлах /etc/hosts и /etc/nsswitch.conf.
Как отредактировать файл hosts в Linux
Чтобы внести изменения в файл hosts в Linux нужно перейти в папку etc. Для этого:

127.0.0.1 localhost
127.0.1.1 ваш_компьютер
Как изменить файл hosts в Windows 10

Формат файла /etc/hosts
Файл /etc/hosts в современных системах Linux присутствует скорее историческим причинам — ранее, до появления и распространения службы DNS, этот файл выполнял задачи по трансляции имён в IP адреса. В современных системах подразумевается, что функции этого файла может выполнять DNS сервер (например, локальный кэширующий DNS сервер, в котором присутствуют пользовательские записи и который, в случае если запрашиваемое имя не найдено, обращается к другому DNS серверу в Интернете). В принципе, аналогичный показанному результат действительно можно было достичь установив и настроив локальный DNS — в этом случае программы dig и другие правильно бы показывали IP адреса даже этих локальных хостов. Тем не менее как мы могли убедиться, использование файла /etc/hosts намного быстрее и удобнее для небольшого числа записей. По этой причине файл /etc/hosts по-прежнему часто применяется.
Файл /etc/hosts является простым текстовым файлом, в котором IP адреса связаны с именами хостов, каждая строка содержит по одному IP адресу. Для каждого хоста одна строка должна представлять следующую информацию:
Поля записи разделяются любым количеством пробелов и/или символов табуляции. Текст с символа “#” до конца строки является комментарием и игнорируется. Имена хостов могут содержать только буквы английского алфавита, знак минус (“-“) и точку (“.”). Они должны начинаться с буквы и заканчиваться на букву. Необязательные псевдонимы указываются для изменений имён, альтернативных написаний, укороченных имён хостов или родовых имён хостов (например, localhost).
Во всех операционных системах в файл hosts добавляются записи с таким синтаксисом:
123.123.123.123 2domains.ru www.2domains.ru
2domains.ru — доменное имя,
www.2domains.ru — доменное имя с WWW.
Перед тем как добавить в файл hosts строку, откройте файл по инструкции выше.

Готово, вы изменили файл hosts.

Пример файла /etc/hosts
# Следующие строки желательны для хостов с поддержкой IPv4
127.0.0.1 localhost
# 127.0.1.1 часто используется для полного доменного имени (FQDN) машины
127.0.1.1 thishost.mydomain.org thishost
192.168.1.10 foo.mydomain.org foo
192.168.1.13 bar.mydomain.org bar
146.82.138.7 master.debian.org master
209.237.226.90 www.opensource.org
# Следующие строки желательны для хостов с поддержкой IPv6
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Как открыть hosts
Открыть файл hosts в Windows можно с помощью текстового редактора, например Блокнота.



Готово, вы открыли файл hosts. Как должен выглядеть файл:

Открыть файл hosts в Linux можно с помощью текстового редактора, например nano.


Где находится файл hosts
Путь к файлу hosts зависит от операционной системы.
Windows — C:WindowsSystem32driversetchosts
Linux, Mac OS — /etc/hosts
Заключение
Безусловно, разные ситуации требуют вносить изменения в важные программные файлы, но стоит быть максимально осторожными, когда вы это делаете, поскольку один неверный шаг может повлечь необратимые последствия. Мы рекомендуем перед началом редактирования сохранить оригинальный файл hosts, чтобы в любой момент была возможность его восстановить.




