- Format of /etc/hosts on Linux (different from Windows?)
- Linux аналог файла host
- ПРИМЕР
- ИСТОРИЧЕСКОЕ ЗАМЕЧАНИЕ
- ФАЙЛЫ
- СМОТРИ ТАКЖЕ
- АВТОР
- Как настроить локальный DNS используя файл /etc/hosts в Linux
- Что такое Переключатель сервисов имён в Linux (Name Service Switch)
- Локальная настройка DNS используя файл /etc/hosts в Linux
- Формат файла /etc/hosts
- Пример файла /etc/hosts
- Связанные статьи:
Format of /etc/hosts on Linux (different from Windows?)
Pasted below this question is a sample of a /etc/hosts file from a Linux (CentOS) and a Windows machine. The Linux file has two tabbed entries after the IP address (that is localhost.localdomain localhost) and Windows has only one. If I want to edit the hosts file in Windows to have the machine name (etest) instead of localhost, I simply replace the word localhost with the machine name I want. The machine need not be part of a domain. In a Linux machine, the two entries localhost.localdomain and localhost seems to indicate that I will need the machine to be part of a domain. Is this true? Can I simply edit both entries to etest so that it will read:
or is it required that I substitute one entry with a domain name? Additionally, please let me know what the second line of the /etc/hosts file on the Linux machine is for.
::1 localhost6.localdomain6 localhost6
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6
# Copyright (c) 1993-1999 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost
Linux аналог файла host
Данная страница руководства описывает формат файла /etc/hosts . Это простой текстовый файл, который ассоциирует IP адреса с именами узлов, по одному IP адресу в строке. Для каждого узла в одной строке должна быть представлена запись со следующей информацией:
IP_адрес каноническое_имя_узла псевдонимы
Поля записи разредяются пробелами и/или символами табуляции. Текст, начинающийся с символа «#» до конца строки считается комментарием и игнорируется. Имена узлов могут содержать только букв, цифры знак минус («-«) и точку («.»). Они должны начинаться с буквы и заканчиваться буквой или цифрой. Псевдонимы предоставляются для возможности выбора более одного имени, альтернативного произношения, сокращения имени узла или для указания наиболее общего имени узла (например, localhost ). Формат файла описывается в RFC 952.
DNS сервер Berkeley Internet Name Domain (BIND) реализует сервер службы имён для UNIX систем. Он расширяет или замещает файл /etc/hosts при операциях поиска имени узла, а также освобождает от необходимости поддерживать актуальность и полноту /etc/hosts .
В современных системах, даже заданная в файле /etc/hosts информация, может быть перекрыта информацией из DNS, это широко используется для следущих случаев: начальная загрузка Большинство систем имеют маленький размер файла /etc/hosts , который обычно содержит имена и адреса наиболее важных узлов локальной сети. Это полезно, когда когда служба DNS не запущена, например во время загрузки системы. NIS сайты, которые используют NIS, хранят таблицу узлов в базе данных узлов NIS. Но даже при работе с NIS остаётся возможность использовать DNS, большинство NIS сайтов также используют для целей резервного копирования и файл /etc/hosts , где размещаются записи о всех локальных узлах. изолированные узлы Маленькие сайты, которые являются изолированными от сети, используют файл /etc/hosts вместо DNS. Если локальная информация меняется редко и сеть не подключена к Интернет, DNS не даёт ощутимых преимуществ.
ПРИМЕР
ИСТОРИЧЕСКОЕ ЗАМЕЧАНИЕ
Перед появлением DNS, файл с таблицей узлов /etc/hosts был единственным способом определения имён узлов по IP адресам в развивающейся сети Интернетет. В самом деле, этот файл мог быть создан из официальной базы данных узлов, которая обслуживалась Центром управления сетевой информацией (Network Information Control Center (NIC)), и далее с помощью локальных изменений, которые часто требовались, чтобы поддержать актуальность данных и чтобы учитывать неофициальные псевдонимы и/или неизвестные узлы. NIC больше не поддерживает файлы hosts.txt (приблизительно с 2000 года), но на их WWW существуют исторические файлы hosts.txt. Я обнаружил три: от 92, 94 и 95 годов.
ФАЙЛЫ
СМОТРИ ТАКЖЕ
АВТОР
Данную страницу руководства написал Manoj Srivastava , для системы Debian GNU/Linux.
Как настроить локальный 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