- Как настроить локальный DNS используя файл /etc/hosts в Linux
- Что такое Переключатель сервисов имён в Linux (Name Service Switch)
- Локальная настройка DNS используя файл /etc/hosts в Linux
- Формат файла /etc/hosts
- Linux: управление файлом hosts
- Файл HOSTS на Linux
- Местоположение файла HOSTS на Linux
- Как добавить сайт в Hosts на Linux?
- Создаем ярлыки в файле Hosts
- Где находится файл hosts и как его изменить
- Зачем нужен файл hosts
- Где находится файл hosts
- Как внести изменения в файл hosts
- Блокировка доступа к сайту через файл hosts
- Оригинальный файл hosts и как его восстановить
Как настроить локальный 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 адреса (используйте значения в соответствии с вашей локальной сетью).
Что такое Переключатель сервисов имён в Linux (Name Service Switch)
Перед тем, как продолжить, вы должны понимать несколько вещей о другом важном файле, который расположен в /etc/nsswitch.conf. Он обеспечивает функции Переключателя сервисов имён, что означает, что он контролирует порядок (приоритет) в котором опрашиваются службы запросах к сервисам преобразования имени.
Если коротко, то за используемые для преобразования имён хостов службы перечислены в строке, которая начинается на «hosts:», пример данной строки:
Если в этой строке на первом месте слово «files» расположено перед словом «dns», то это означает, что для запросов к службе имён в начале делается запрос к файлу /etc/hosts, а затем к DNS. Но если слово «dns» стоит до «files», то при поиске IP адреса домена в начале будет сделан запрос DNS, и если не получено значение, то будут опрошены другие соответствующие службы или файлы.
Для наших целей важно, чтобы в строке «hosts:» присутствовало слово «files». А если вы хотите в файле /etc/hosts сделать записи для реальных доменных имён (например, для zalinux.ru), то необходимо, чтобы слово «files» в этой строке стояло раньше слова «dns», иначе вначале будет делаться запрос к DNS серверу, который будет возвращать IP сайта и очередь для получения IP из /etc/hosts не дойдёт
Проверьте содержимое этого файла:
Или просто посмотрите нужную строку:
Локальная настройка DNS используя файл /etc/hosts в Linux
Теперь откройте файл /etc/hosts используя любой текстовый редактор:
Добавьте в этот файл строки в формате:
Например, для моих данных я добавляю:
Сохраните и закройте файл.
Изменения, внесённые в файл 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 адресу. Для каждого хоста одна строка должна представлять следующую информацию:
Поля записи разделяются любым количеством пробелов и/или символов табуляции. Текст с символа «#» до конца строки является комментарием и игнорируется. Имена хостов могут содержать только буквы английского алфавита, знак минус («—«) и точку («.«). Они должны начинаться с буквы и заканчиваться на букву. Необязательные псевдонимы указываются для изменений имён, альтернативных написаний, укороченных имён хостов или родовых имён хостов (например, localhost).
Источник
Linux: управление файлом hosts
Файл hosts — это текстовый файл на вашем компьютере, в котором содержится список доменных имен (хостов) с привязкой к IP-адресу сервера, на котором размещен ресурс. Одно из частых применений файла hosts — блокировка доступа к сайтам или создание персональных привязок (ярлыков) к сайтам. Эти задачи решаются путем добавления или правки нескольких строк в файле hosts.
Файл HOSTS на Linux
Файл HOSTS на операционных системах Linux, как и на других ОС, представляет собой простой текстовый файл, который можно открыть простым текстовым редактором, и содержит транслитерацию имен хостов (веб-адресов, URL) в IP-адреса. Например, когда вы вводите в адресную строку вашего браузера адрес какого-то сайта, например yandex.ru, то операционная система в первую очередь проверит ваш файл hosts на наличие в нем записи с указанием IP адреса сервера, на котором размещается искомый веб-сайт.
Если вы заглянете в ваш hosts-файл, то вы увидите там всего лишь пару строк, а не перечень всех сайтов во всемирной паутине.
Это говорит о том, что система перед тем как искать запрашиваемый сайт на DNS-серверах, к примеру вашего интернет-провайдера, а сперва ищет IP-адрес сайта в файле hosts.
Исходя из этого, данный файл можно использовать для добавления тех ресурсов в сети, которые не могут предоставить DNS сервера (например псевдоним местоположения в локальной сети, что возможно только при условии наличия настроенного DNS-сервера в сети) или переопределения IP-адресов, не предоставляемых DNS серверами.
К примеру, если вы обращаетесь к какому-то сайту site.ru, DNS сервера вернут IP адрес этого сайта, но если вы хотите заблокировать доступ к этому сайту на данном компьютере, то нужно в файл hosts добавить строчку, которая направит ваш компьютер на какой-нибудь IP-адрес, отличный от реального IP сайта site.ru.
Целей использования файла hosts в вашей системе довольно много в зависимости от ваших потребностей.
Местоположение файла HOSTS на Linux
На компьютерах с операционными системами Linux файл hosts расположен по адресу:
Поскольку это простой текстовый файл, то для его редактирования вы можете использовать любой текстовый редактор, установленный в системе.
Однако, т.к. hosts — системный файл, то вам нужны права администратора для сохранения изменений. Так, к примеру, чтобы изменить файл host в терминале Linux с помощью консольного редактора текста nano , вам нужно ввести сначала команду sudo , чтобы получить права суперпользователя:
или для редактора Vim :
Чтобы использовать использовать редактор с графическим интерфейсом, к примеру gedit , используйте gksu :
Вместо указанных редакторов вы можете использовать в терминале Linux любой предпочитаемый редактор. После внесения сохраните изменения и выйдите из режима редактирования. К примеру для nano нажмите Ctrl+X и затем y для подтверждения перезаписи файла.
Как добавить сайт в Hosts на Linux?
В файле hosts — каждая запись — это отдельная строка. Синтаксис здесь очень простой — введите IP-адрес, нажмите Tab на клавиатуре (допускается, но не желателен, пробел). Например, вы хотите заблокировать доступ к ВКонтакте:
Здесь 127.0.0.1 — петлевой IP адрес, который всегда будет указывать на ваш компьютер. Если веб-ресурс не размещен на вашей машине, то ваш браузер ответит на запрос, что сайт не найден. Теперь данный сайт заблокирован на вашем компьютере.
Создаем ярлыки в файле Hosts
Допустим, у вас есть компьютер подключенный к локальной сети имеет ip-адрес 192.168.1.5, на котором есть простенький сайт с чем-то полезным для вас. Добавьте следующую запись в файл hosts:
После сохранения изменений в вашем браузере в адресную строку введите http://homeserver и автоматически будете направлены на IP 192.168.1.5 и увидите содержимое вашего сайта.
Еще один вариант. У вас есть реальный веб-сайт site.ru, размещенный на каком-либо хостинге. Вы захотели перенести сайт к другому хостинг-провайдеру. Сервер нового хостера имеет другой IP адрес и вы не хотите ждать несколько часов до обновления DNS-серверов и привязки сайта к новому IP (например, 222.222.2.22), то вам нужно добавить в файл hosts запись
Теперь в вашем браузере откроется сайт, перенесенный на новый сервер.
on Пятница, 05 Апрель 2019. Posted in Linux
Источник
Где находится файл hosts и как его изменить
Файл hosts — текстовый документ, который содержит в себе информацию о домене и IP-адресе, который ему соответствует. Файл hosts появился во времена зарождения Интернета (ARPANET) и служил неким маршрутизатором, пока на замену ему не пришла служба DNS. Но до сих пор он не утратил важности и по-прежнему используется как инструмент, который обладает приоритетом перед обращением к DNS-серверам.
Зачем нужен файл hosts
Предположим: вы зарегистрировали домен и привязали его к Hosting Linux. Но чтобы увидеть сайт, вам нужно дождаться делегирования домена на DNS-серверы. В файле hosts вы можете указать ваш домен и IP-адрес хостинга, а затем открыть браузер и зайти на ваш сайт, не дожидаясь делегирования домена. Также с его помощью вы можете заблокировать на локальном компьютере доступ к определённому сайту, указав соответствующую запись.
Где находится файл hosts
Путь к папке, где лежит файл hosts, зависит от операционной системы, которая установлена на вашем компьютере:
Windows XP, 2003, Vista, 7, 8, 10 — c:\windows\system32\drivers\etc\hosts
Linux, Ubuntu, Unix, BSD — /etc/hosts
Редактировать файл etc hosts нужно от имени администратора, иначе вы не сможете сохранить внесённые изменения.
Как внести изменения в файл hosts
Ниже мы рассмотрим, как редактировать и как сохранить файл hosts. Важно открыть файл с правами администратора, иначе система не даст вам его сохранить. Выберите вашу операционную систему и следуйте инструкции:
Запустите Блокнот или любой другой редактор от имени администратора. Откройте Пуск, найдите нужный редактор, нажмите по нему правой кнопкой мыши и выберите Запуск от имени администратора:
Как отредактировать файл hosts
В меню «Файл» нажмите Открыть и перейдите в каталог, в котором расположен файл hosts. Измените тип файла на «Все файлы»:
Добавьте в конце файла необходимую запись в формате:
123.123.123.123 | faq-reg.ru | www.faq-reg.ru |
123.123.123.123 — IP-адрес вашего сервера или хостинга,
faq-reg.ru — имя вашего домена.
Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
Чтобы изменить файл hosts в виндовс 10 (8), выполните следующие действия:
Запустите Блокнот или любой другой редактор от имени администратора. Для этого найдите его в Пуске, нажмите по нему правой кнопкой мыши и выберите Запуск от имени администратора:
В меню «Файл» нажмите Открыть и перейдите в каталог, где находится файл hosts . Измените тип файла на «Все файлы»:
Добавьте в конце файла необходимую запись в формате:
123.123.123.123 | faq-reg.ru | www.faq-reg.ru |
123.123.123.123 — IP-адрес вашего сервера или хостинга,
faq-reg.ru — имя вашего домена.
Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
В Linux файл hosts находится в папке etc. Чтобы отредактировать его:
Введите в терминал linux команду hosts: sudo nano /etc/hosts
Добавьте в конце файла необходимую запись в формате:
123.123.123.123 | faq-reg.ru | www.faq-reg.ru |
123.123.123.123 — IP-адрес вашего сервера или хостинга,
faq-reg.ru — имя вашего домена.
Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
Файл hosts в Ubuntu редактируется так же, как и во всех Unix-системах.
Файл hosts в Mac OS расположен в каталоге: /private/etc/hosts. Чтобы изменить его:
Введите команду: sudo nano /etc/hosts и нажмите Enter:
Добавьте в конце файла необходимую запись в формате:
123.123.123.123 | faq-reg.ru | www.faq-reg.ru |
123.123.123.123 — IP-адрес вашего сервера или хостинга,
faq-reg.ru — имя вашего домена.
Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
Также вы можете заблокировать определенный сайт через файл hosts, воспользовавшись инструкцией ниже:
Блокировка доступа к сайту через файл hosts
Доступ к сайту также можно ограничить для локального компьютера. Для этого укажите адрес страницы (домен) в файле hosts. Заблокировать IP нежелательного сайта не требуется. Блокировка осуществляется по локальному хосту с фиксированным IP (127.0.0.1):
В указанной на скриншоте строке укажите IP-адрес 127.0.0.1 и через пробел адрес нежелательного сайта. Чтобы заблокировать несколько сайтов, повторите действие в следующей строке. В примере ниже в файле hosts отказано в доступе (заблокирован доступ) к сайтам «vk.com» и «youtube.com»:
Готово! Доступ к сайтам будет ограничен на определенном ПК.
Оригинальный файл hosts и как его восстановить
Скачать оригинал файла hosts можно на разных ресурсах. Но мы не рекомендуем делать это, так как файл может быть заражен.
Файл hosts по умолчанию есть в каждой операционной системе, но он может быть скрыт для просмотра. Следуя инструкциям выше, вы сможете его открыть и отредактировать. Если вы удалили его, то просто создайте текстовый файл без расширения в нужной папке.
По умолчанию файл hosts выглядит следующим образом:
Источник