Linux host etc hosts

How to Setup Local DNS Using /etc/hosts File in Linux

DNS (Domain Name System or Service) is a hierarchical decentralized naming system/service that translates domain names into IP addresses on the Internet or a private network and a server that provides such a service is called a DNS server.

This article explains, how to setup a local DNS using the hosts file (/etc/hosts) in Linux systems for local domain resolution or testing the website before taking live.

For example, you may want to test a website locally with a custom domain name before going live publicly by modifying the /etc/hosts file on your local system to point the domain name to the IP address of the local DNS server you configured.

The /etc/hosts is an operating system file that translate hostnames or domain names to IP addresses. This is useful for testing websites changes or the SSL setup before taking a website publicly live.

Attention: This method will only work if the hosts have a static IP address. Therefore ensure that you have set static IP addresses for your Linux hosts or nodes running other operating systems.

For the purpose of this article, we will be using the following domain, hostnames and IP addresses (use values that apply to your local setting).

Understanding Name Service Switch in Linux

Before moving any further, you should understand a few things about another important file that is /etc/nsswitch.conf. It provides Name Service Switch functionality which controls the order in which services are queried for name service lookups.

The configuration is based on order; if files is before dns it means the system will query the /etc/hosts file before checking DNS for name service requests. But if DNS is before files then the domain lookup process will consult DNS first before any other appropriate services or files.

In this scenario, we want to query the “files” service. To check the order, type.

Check Name Service Switch

Configure DNS Locally Using /etc/hosts File in Linux

Now open the /etc/hosts file using your editor of choice as follows

Then add the lines below to the end of the file as shown in the screen shot below.

Next, test if everything is working well as expected, using the ping command from Host 1, you can ping Host 2 using it domain name like so.

Ping Domain Locally

On the Host 2, we have setup Apache HTTP server. So we can also test if the name translation service is working as follows by going to URL http://centos.tecmint.lan.

Check Domain Locally

Important: To use the domain names on any host on the network, you must configure the above settings in its /etc/hosts file.

Читайте также:  Интерфейс операционной системы windows принципы

What does this mean, in the above example, we only configured the hosts file of Host 1 and we can only use the domain names on it. To use the same names on Host 2, we have to add the addresses and names to its hosts file as well.

Lastly, you should use host command or nslookup command to test if the name translation service is actually working, these commands only query DNS and overlook any configurations in /etc/hosts and /etc/nsswitch.conf files.

You may also like to read these following related articles.

That’s it! Do share any additional thoughts or questions about this topic with us, via the comment section below.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

We are thankful for your never ending support.

Источник

Настройка файла /etc/hosts

С помощью файла hosts на вашем компьютере можно настроить соответствие между доменом и конкретным IP-адресом.

Такая настройка может понадобиться, например, в случае, если вы перенесли сайт и домен на новый хостинг, и необходимо проверить работу сайта по его основному адресу. Однако кэш DNS-сервера все еще «помнит» предыдущую A-запись домена, и при обращении к сайту будет отдавать прежний IP-адрес, по которому сайт уже недоступен. Чтобы не дожидаться обновления кэша DNS (оно может занимать несколько часов), можно указать необходимую связку домена и IP-адреса в файле hosts — запрос к этому файлу имеет приоритет перед обращением к DNS-серверам.

Узнать, к какому IP идет запрос в данный момент при обращении к домену, можно с помощью команды ping — работа с ней подробнее описана здесь.

Еще один вариант использования настройки в hosts — запрет доступа к тому или иному сайту с вашего компьютера. К примеру, если домену facebook.com прописать в hosts некорректный IP (скажем, 127.0.0.1), то перейти на данный сайт с вашего компьютера будет невозможно.

Сама настройка очень простая: достаточно указать в файле нужный IP-адрес, а через пробел от него — доменное имя. Вносить изменения необходимо от имени администратора.

Windows

Если система устанавливалась по умолчанию на диск C, файл будет находиться по пути:

Открыть нужный файл можно одним из следующих способов. Убедитесь, что все действия вы выполняете от имени администратора.

Вариант 1.

Запустить командную строку (нажать Win+R, в появившемся окне набрать cmd и нажать ОК) и выполнить в ней команду ниже:

Файл hosts будет открыт в блокноте, и вы сможете внести необходимые изменения и сохранить их.

Вариант 2.

Перейти в «Мой компьютер» -> Локальный диск С -> Windows -> System32 -> drivers -> etc либо вставить нужный путь в адресную строку проводника:

В папке etc кликните правой кнопкой мыши на файле hosts, выберите «Открыть с помощью» и далее выберите «Блокнот»:

Читайте также:  Как удалить backup mac os

Как правило, файл выглядит следующим образом:

Введите необходимый IP и домен, например, 92.53.96.120 mydomain.com:

Сохраните изменения. Для этого выберите «Файл» — «Сохранить». В открывшемся окне выберите «Все файлы» и нажмите «Сохранить».

Замените mydomain.com на указанный вами домен.

Если все настройки корректны, в выводе команды будет отражен IP-адрес, указанный в файле hosts.

Linux

Откройте терминал и выполните команду ниже:

Она позволит открыть файл hosts для редактирования с правами суперпользователя. Если в вашей системе не установлен редактор nano, можно воспользоваться любым другим (gedit, vi и т.д.).

Как правило, содержимое файла выглядит следующим образом:

Введите необходимый IP и домен после второй строки, например:

Сохраните изменения (в nano — нажатием Ctrl+O, далее Ctrl+X) и проверьте настройки, выполнив в терминале:

Если все настройки корректны, в выводе команды будет отражен IP-адрес, указанный в файле hosts.

MacOS

Запустите программу Терминал / Terminal. Ее можно найти через Spotlight / Finder.

Выполните в терминале команду:

Далее введите ваш пароль пользователя.

В файле под уже имеющимися записями укажите нужный IP и домен, например:

Сохраните изменения и закройте редактор. Это можно сделать сочетанием клавиш ⌘ и Y, после чего нажать Enter для подтверждения.

Для проверки вы можете выполнить в терминале команду:

Если все сделано верно, в выводе команды будет отражен IP-адрес, который вы указали в файле hosts.

Источник

Как изменить файл Hosts в Linux

На вашем компьютере есть один файл, который служит небольшим шлюзом между вами и Интернетом. Его название — Hosts. Если вам нужно заблокировать веб сайты или создать персонализированные имена хостов в Linux, вы можете справиться с этой задачей, добавив или изменив несколько строк в файле hosts.

Что такое файл Hosts?

Файл hosts представляет собой простой текстовый файл, который все операционные системы используют для преобразования имен хостов (также известных как веб-адреса или URL) в IP-адреса. Когда вы вводите имя хоста, например, wikipedia.org, ваша система будет искать файл hosts, чтобы получить IP адрес, необходимый для подключения к соответствующему серверу.

Если вы откроете файл hosts, вы быстро заметите, что в нем нет списка всех адресов Интернета. Вместо этого, здесь может быть всего пара строк, и все. Что это значит?

Оказывается, ваша система сначала проверит файл hosts, прежде чем искать сайт на DNS-серверах, определенных в настройках вашей сети (обычно DNS-сервера вашего провайдера).

Это означает, что вы можете использовать файл hosts для добавления того, что DNS серверы не могут предоставить (например, псевдонимы для локальной сети, кроме тех, что предоставляют DNS-серверы в локальной сети) или переопределить IP адреса, которые обычно предоставляют ваши DNS-серверы.

Например, если вы запросите wikipedia.org, DNS-серверы вернут IP-адрес Википедии на ваш компьютер. Но если вы хотите заблокировать Википедию на этом компьютере, вы можете добавить запись в файл hosts, которая скажет вашему компьютеру, что wikipedia.org указывает на другой IP адрес, отличный от фактического IP адреса Википедии.

Есть много других вещей, которые вы можете сделать с файлом hosts, здесь указаны лишь некоторые основные примеры, остальное зависит от ваших потребностей.

Расположение файла Hosts в Linux

В Linux можно найти hosts файл в /etc/hosts. Поскольку это обычный текстовый файл, вы можете открыть его с помощью предпочитаемого вами текстового редактора.

Читайте также:  Windows 10 нагружает диск 100

Однако, поскольку файл hosts является системным файлом, вам понадобятся права администратора для сохранения изменений. Поэтому для редактирования файла с помощью терминального текстового редактора Linux, такого как nano, вам потребуется команда sudo, чтобы получить доступ к нему для суперпользователей:

Чтобы воспользоваться графическим текстовым редактором, например, gedit, используйте gksu:

Для запуска соответствующего приложения с правами администратора необходимо использовать терминал. Просто замените nano или gedit на любимый терминальный или графический текстовый редактор. С помощью nano, после редактирования файла, нажмите Ctrl + X, а затем Y, чтобы подтвердить перезапись изменений.

Как добавлять сайты в Hosts файл

В файле hosts каждая запись имеет свою собственную строку. Синтаксис прост. Введите IP-адрес, на который вы хотите перевести имя хоста, нажмите клавишу табуляции на клавиатуре, а затем введите имя хоста.

Например, чтобы заблокировать Википедию введите это (помните, что в качестве пробела используется табуляция):

127.0.0.1 — это loopback IP-адрес, который всегда будет указывать на вашу собственную систему. Поскольку веб-страница не хранится на вашем компьютере, ваш браузер сообщит, что страница не может быть найдена. Сейчас она фактически заблокирована.

Если вы чувствуете страх перед терминалом, проверьте приложение Linux Mint Domain Blocker (также известное как mintnanny). Оно добавит записи в файл hosts, указывающие на имена хостов, которые вы указываете в 127.0.0.1. Но чтобы сделать что-то еще, вам все равно придется вносить изменения с помощью текстового редактора.

Создание ярлыков в Hosts файле

Если у вас на компьютере развернута домашняя сеть и, скажем, по IP-адресу 192.168.1.10 у вас какая-либо полезная для вас веб-страница, вы можете указать псевдоним для быстрого доступа к нему:

Теперь, если вы откроете в браузере http://homeserver/, то автоматически попадете на 192.168.1.10. Это удобнее, чем каждый раз вводить IP-адрес вручную.

Кроме того, вы можете использовать файл hosts для создания ярлыков доступа к определенным сайтам в Интернете. Используйте такую команду, как nslookup, чтобы найти IP-адрес веб-сайта, затем добавьте его в файл hosts вместе с нужным ярлыком, как в примере выше. Но это работает только на сайтах с выделенными IP-адресами. Скорее всего, это не сработает с большинством сайтов, которые вы посещаете.

Потенциальные проблемы использования

Итак, вы теперь знаете, как вносить изменения в файл хоста, но при использовании Google Chrome вы можете столкнуться с радом проблем. Этот веб-браузер имеет тенденцию игнорировать файл hosts, если только вы не сделаете одну из двух возможных вещей:

  • Вводите http:// в начале каждого адреса. Например, если у вас заблокирована Википедия в файле hosts, то Chrome обойдет этот блок, если вы просто введете wikipedia.com в адресную строку. Если вы введете http://wikipedia.com в адресную строку, то он будет следовать за файлом hosts.
  • Отключите в настройках Chrome параметр «Использовать веб-сервис для устранения ошибок навигации», и вам не придется каждый раз вводить адрес http:// в начале работы. Это один из нескольких советов Google Chrome по обеспечению конфиденциальности, который стоит сделать в любом случае.

Файл hosts предоставляет простой способ блокировки доступа к определенным веб-сайтам на вашем компьютере. Поскольку многие версии Linux не имеют встроенного программного обеспечения родительского контроля, эти знания могут пригодиться, если вы решите начать работу с компьютером под управлением Linux.

Источник

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