Linux etc hosts conf

Как настроить локальный 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. Он обеспечивает функции Переключателя сервисов имён, что означает, что он контролирует порядок (приоритет) в котором опрашиваются службы запросах к сервисам преобразования имени.

Читайте также:  Amazon linux install docker

Если коротко, то за используемые для преобразования имён хостов службы перечислены в строке, которая начинается на «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 по-прежнему часто применяется.

Читайте также:  Linux где папка загрузки

Файл /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

Связанные статьи:

Источник

Linux etc hosts conf

NAME

host.conf - resolver configuration file

DESCRIPTION

The file /etc/host.conf contains configuration information specific to the resolver library. It should contain one configuration keyword per line, followed by appropriate configuration information. The keywords recognized are order, trim, multi, nospoof, spoof, and reorder. These keywords are described below. order This keyword specifies how host lookups are to be performed. It should be followed by one or more lookup methods, separated by commas. Valid methods are bind, hosts, and nis. trim This keyword may be listed more than once. Each time it should be followed by a list of domains, separated by colons (':'), semicolons (';') or commas (','), with the leading dot. When set, the resolv+ library will automatically trim the given domain name from the end of any hostname resolved via DNS. This is intended for use with local hosts and domains. (Related note: trim will not affect hostnames gathered via NIS or the hosts file. Care should be taken to ensure that the first hostname for each entry in the hosts file is fully qualified or unqualified, as appropriate for the local installation.) multi Valid values are on and off. If set to on, the resolv+ library will return all valid addresses for a host that appears in the /etc/hosts file, instead of only the first. This is off by default, as it may cause a substantial performance loss at sites with large hosts files. nospoof Valid values are on and off. If set to on, the resolv+ library will attempt to prevent hostname spoofing to enhance the security of rlogin and rsh. It works as follows: after performing a host address lookup, resolv+ will perform a hostname lookup for that address. If the two hostnames do not match, the query will fail. The default value is off. spoofalert Valid values are on and off. If this option is set to on and the nospoof option is also set, resolv+ will log a warning of the error via the syslog facility. The default value is off. spoof Valid values are off, nowarn and warn. If this option is set to off, spoofed addresses are permitted and no warnings will be emitted via the syslog facility. If this option is set to warn, resolv+ will attempt to prevent hostname spoofing to enhance the security and log a warning of the error via the syslog facility. If this option is set to nowarn, the resolv+ library will attempt to prevent hostname spoofing to enhance the security but not emit warnings via the syslog facility. Setting this option to anything else is equal to setting it to nowarn. reorder Valid values are on and off. If set to on, resolv+ will attempt to reorder host addresses so that local addresses (i.e., on the same subnet) are listed first when a gethostbyname(3) is performed. Reordering is done for all lookup methods. The default value is off.

ENVIRONMENT

There are six environment variables that can be used to allow users to override the behavior which is configured in /etc/host.conf. RESOLV_HOST_CONF If set this variable points to a file that should be read instead of /etc/host.conf. RESOLV_SERV_ORDER Overrides the order command. RESOLV_SPOOF_CHECK Overrides the nospoof, spoofalert and spoof commands in the same way as the spoof command is parsed. Valid values are off, nowarn and warn. RESOLV_MULTI Overrides the multi command. RESOLV_REORDER Overrides the reorder command. RESOLV_ADD_TRIM_DOMAINS A list of domains, separated by colons (':'), semicolons (';') or commas (','), with the leading dot, which will be added to the list of domains that should be trimmed. RESOLV_OVERRIDE_TRIM_DOMAINS A list of domains, separated by colons (':'), semicolons (';') or commas (','), with the leading dot, which will replace the list of domains that should be trimmed. Overrides the trim command.

FILES

/etc/host.conf Resolver configuration file /etc/resolv.conf Resolver configuration file /etc/hosts Local hosts database

NOTES

The following differences exist compared to the original implementation. A new command spoof and a new environment variable RESOLV_SPOOF_CHECK can take arguments like off, nowarn and warn. Line comments can appear anywhere and not only at the beginning of a line.

SEE ALSO

gethostbyname(3), hostname(7), named(8), resolv+(8)

Источник

Оцените статью
Adblock
detector