В каждой системе Linux есть файл etc/hosts, который сопоставляет доменное имя сайта с IP-адресом. Он полезен для сопоставления адресов интрасети, блокировки веб-сайтов, а также для перенаправления доменов на новые IP-адреса. Он также используется для тестирования веб-сайта без изменения его DNS-записей. После внесения изменений в файл etc/hosts в Linux, его необходимо перезагрузить, чтобы применить изменения.
Каждый раз, когда пользователи данной системы пытаются получить доступ к веб-сайту или домену, этот файл просматривается на предмет сопоставления доменных имен с IP-адресами, прежде чем использовать DNS (Domain Name System) для получения правильного IP-адреса. Если в файле etc/hosts есть запись для данного домена/веб-сайта, она имеет приоритет перед DNS.
Как перезагрузить /etc/hosts в Linux
Вот формат файла etc/hosts. Каждая строка в нем содержит следующие записи. IP-адрес, за которым следует имя домена и необязательный псевдоним домена.
IP-адрес Доменное имя Доменные псевдонимы
Если какая-либо запись начинается с #, она рассматривается как комментарий. Например, вы можете открыть этот файл в любом текстовом редакторе.
1 | nano /etc/hosts |
Добавьте в него следующие строки, просто в качестве примера.
1 2 3 | 127.0.0.1 www.example.com 127.0.0.1 www.example.ru #127.0.0.1 www.example.net |
Сохраните и закройте файл.
В приведенном выше файле etc/hosts мы назначили IP-адреса для example.com, example.net и example.ru как localhost 127.0.0.1. Когда ваша система использует этот файл hosts, она будет перенаправлять всех посетителей с вашей системы на example.com и example.ru на localhost вместо их фактических IP-адресов, тем самым эффективно блокируя эти два сайта в вашей системе. Это будет применимо только для людей, просматривающих эти сайты с вашей системы. Но последняя строка, отображающая example.net на localhost, рассматривается как комментарий и не применяется.
В большинстве случаев изменения, внесенные в /etc/hosts, выполняются сразу после закрытия файла. Но вам придется перезапустить приложения, которые кэшируют информацию DNS. Тем не менее, если вы обнаружили, что вышеуказанные изменения не применяются, вы можете перезагрузить файл etc/hosts с помощью следующей команды.
1 | sudo service network-manager restart |
В случае если имя system-hostname не является корректным, вы можете перезапустить службу system-hostnamed следующей командой в терминале.
1 | /bin/systemctl restart systemd-hostnamed |
Если в вашей системе используется утилита dnsmasq, вам может потребоваться завершить ее работу для применения изменений.
1 | pkill -HUP dnsmasq |
Иногда для применения изменений может потребоваться перезапуск веб-браузера. Если вы обнаружили, что изменения все еще не применяются, можно просто перезагрузить сетевое подключение или компьютер.