- Как настроить локальный DNS используя файл /etc/hosts в Linux
- Что такое Переключатель сервисов имён в Linux (Name Service Switch)
- Локальная настройка DNS используя файл /etc/hosts в Linux
- Формат файла /etc/hosts
- Пример файла /etc/hosts
- Связанные статьи:
- Как отредактировать файл Hosts в Linux, Windows и macOS
- Формат файла Hosts
- Изменить файл Hosts в Linux
- Изменить файл Hosts в Windows
- Изменить файл Hosts в macOS
- Выводы
- How to Edit Hosts File on Linux Mint 21
- What Is the Purpose of Hosts File in Linux Mint 21
- How to Edit the Hosts File in Linux Mint 21
- How to Block a Website through Hosts File
- Conclusion
- About the author
- Aaliyan Javaid
Как настроить локальный DNS используя файл /etc/hosts в Linux
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 в любом Linux вы можете сделать на примере описанном в инструкции «Как настроить Kali Linux на использование статичного IP адреса».
- Настройка статичного IP в Windows описана в статье «Как веб-сервер на своём компьютере сделать доступным для других».
Для целей настоящей статьи мы будем использовать следующий домен, имена хостов и IP адреса (используйте значения в соответствии с вашей локальной сетью).
Домен: hackware.lan Хост 1: kali.hackware.lan 192.168.1.60 Хост 2: mint.hackware.lan 192.168.1.70
Что такое Переключатель сервисов имён в Linux (Name Service Switch)
Перед тем, как продолжить, вы должны понимать несколько вещей о другом важном файле, который расположен в /etc/nsswitch.conf. Он обеспечивает функции Переключателя сервисов имён, что означает, что он контролирует порядок (приоритет) в котором опрашиваются службы запросах к сервисам преобразования имени.
Если коротко, то за используемые для преобразования имён хостов службы перечислены в строке, которая начинается на «hosts:», пример данной строки:
hosts: files mymachines myhostname resolve [!UNAVAIL=return] dns
Если в этой строке на первом месте слово «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 используя файл /etc/hosts в Linux
Теперь откройте файл /etc/hosts используя любой текстовый редактор:
Добавьте в этот файл строки в формате:
IP_1 имя_хоста_1 короткое_имя IP_2 имя_хоста_2 IP_3 имя_хоста_3 ……….
Например, для моих данных я добавляю:
192.168.1.60 kali.hackware.lan kali 192.168.1.70 mint.hackware.lan mint
Сохраните и закройте файл.
Изменения, внесённые в файл hosts, вступают в силу немедленно.
Далее проверьте, что всё работает как и ожидается. Выполним пинг первого хоста командой ping. Для других хостов можно сделать аналогичную проверку:
Или используем сокращённый псевдоним:
На хосте kali.hackware.lan у меня запущен веб-сервер, поэтому я могу получить к нему доступ в веб-браузере, набрав адрес http://kali.hackware.lan/ или более короткий псевдоним http://kali.
Важно: обращаться по этим именам к другим компьютерам я могу только с тех систем, где добавлены аналогичные записи в файл /etc/hosts.
Если вы попытаетесь проверить IP адрес с помощью команды dig, nslookup или host, то для локальных хостов не будут найдены записи. Дело в том, что эти команды только делает запросы к DNS серверу и игнорируют настройки в файлах /etc/hosts и /etc/nsswitch.conf.
Формат файла /etc/hosts
Файл /etc/hosts в современных системах Linux присутствует скорее историческим причинам — ранее, до появления и распространения службы DNS, этот файл выполнял задачи по трансляции имён в IP адреса. В современных системах подразумевается, что функции этого файла может выполнять DNS сервер (например, локальный кэширующий DNS сервер, в котором присутствуют пользовательские записи и который, в случае если запрашиваемое имя не найдено, обращается к другому DNS серверу в Интернете). В принципе, аналогичный показанному результат действительно можно было достичь установив и настроив локальный DNS — в этом случае программы dig и другие правильно бы показывали IP адреса даже этих локальных хостов. Тем не менее как мы могли убедиться, использование файла /etc/hosts намного быстрее и удобнее для небольшого числа записей. По этой причине файл /etc/hosts по-прежнему часто применяется.
Файл /etc/hosts является простым текстовым файлом, в котором IP адреса связаны с именами хостов, каждая строка содержит по одному IP адресу. Для каждого хоста одна строка должна представлять следующую информацию:
IP_адрес каноническое_имя_хоста [псевдонимы. ]
Поля записи разделяются любым количеством пробелов и/или символов табуляции. Текст с символа «#» до конца строки является комментарием и игнорируется. Имена хостов могут содержать только буквы английского алфавита, знак минус («—«) и точку («.«). Они должны начинаться с буквы и заканчиваться на букву. Необязательные псевдонимы указываются для изменений имён, альтернативных написаний, укороченных имён хостов или родовых имён хостов (например, localhost).
Пример файла /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 в Linux, Windows и macOS
Файл hosts используется для сопоставления доменных имен (имен хостов) с IP-адресами. Это простой текстовый файл, используемый всеми операционными системами, включая Linux, Windows и macOS.
Файл hosts имеет приоритет над DNS. Когда вы вводите доменное имя веб-сайта, который хотите посетить, это доменное имя должно быть преобразовано в соответствующий IP-адрес. Операционная система сначала проверяет свой файл hosts для соответствующего домена, и, если для этого домена нет записи, она запрашивает настроенные DNS-серверы для разрешения указанного имени домена. Это влияет только на компьютер, на котором внесено изменение, а не на то, как домен разрешается во всем мире.
Использование файла hosts для сопоставления домена с IP-адресом особенно полезно, если вы хотите протестировать свой веб-сайт без изменения настроек DNS домена. Например, вы переносите свой веб-сайт на новый сервер и хотите проверить, полностью ли он работает, прежде чем указывать домен на новый сервер. Файл hosts также можно использовать для блокировки веб-сайтов на вашем компьютере.
В этой статье мы дадим инструкции о том, как изменить файл hosts в Linux, macOS и Windows.
Формат файла Hosts
Записи в файле hosts имеют следующий формат:
IPAddress DomainName [DomainAliases]
IP-адрес и доменные имена должны быть разделены хотя бы одним пробелом или табуляцией. Строки, начинающиеся с # являются комментариями и игнорируются.
Чтобы добавить запись в файл hosts, просто откройте файл в текстовом редакторе. Ниже приведен пример файла hosts:
# Static table lookup for hostnames. # See hosts(5) for details. 127.0.1.1 linuxize.desktop linuxize 127.0.0.1 localhost
Изменения файла hosts вступают в силу немедленно, за исключением случаев, когда записи DNS кэшируются приложениями.
Чтобы отменить изменения, просто откройте файл и удалите добавленные строки.
Изменить файл Hosts в Linux
В Linux полный путь к файлу — /etc/hosts .
Приведенные ниже инструкции действительны для всех дистрибутивов Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint:
- В окне терминала откройте файл hosts с помощью вашего любимого текстового редактора :
При появлении запроса введите свой пароль sudo.
Изменить файл Hosts в Windows
В Windows полный путь к файлу — c:WindowsSystem32Driversetchosts . Приведенные ниже инструкции действительны для Windows 10 и Windows 8.
- Нажмите клавишу Windows и введите «Блокнот» в поле поиска.
- Щелкните правой кнопкой мыши значок «Блокнот» и выберите «Запуск от имени администратора».
- В Блокноте щелкните Файл, затем Открыть. В поле Имя файла вставьте c:WindowsSystem32driversetchosts .
- Прокрутите вниз до конца файла и добавьте новые записи:
- Сохраните изменения, щелкнув File > Save .
Изменить файл Hosts в macOS
В macOS полный путь к файлу — /etc/hosts . Приведенные ниже инструкции действительны для всех версий macOS.
- В окне терминала откройте файл hosts с помощью вашего любимого текстового редактора:
При появлении запроса введите пароль администратора.
Выводы
Файл hosts позволяет вам установить IP-адрес данного доменного имени.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
How to Edit Hosts File on Linux Mint 21
Host file of Linux mint primarily maps the IP address with the domain names of the system thus making it useful for various purposes which include blocking a website and accessing any computer remotely. If you are unaware of how to edit a host file in your Linux Mint 21 and want to use it for multiple purposes, then read this guide.
What Is the Purpose of Hosts File in Linux Mint 21
Host file as mentioned above contains the IP addresses and hostname of the Linux system, but there are multiple uses of host file and those are:
- Blocking any websites
- Remotely accessing any Alias
- Blocking advertisers and trackers
- Testing an application
- Adding or blocking specific networks
How to Edit the Hosts File in Linux Mint 21
The process of editing the host file of Linux Mint 21 is quite easy; open the host file on your Linux Mint 21 by using any terminal-based text editor, for example, nano:
Now edit the host file by entering the data like IP addresses and host names for the connections you either want to block or access.
How to Block a Website through Hosts File
When it comes to security or parental control hosts file plays a crucial role as it can be used to block unwanted websites. The process of blocking a website is mentioned below:
For instance, if you want to block YouTube then use:
Next save the file and open the website on the browser of Linux Mint to see if the site is blocked or not:
Conclusion
Host files in an operating system generally contain the IP address and the domain name of that system, there are multiple uses of a host file which can be achieved by editing it and it can be done by stating its path with nano command.
About the author
Aaliyan Javaid
I am an electrical engineer and a technical blogger. My keen interest in embedded systems has led me to write and share my knowledge about them.