Как настроить виртуальные хосты в Ubuntu или Debian. Как отредактировать файл hosts в Ubuntu Как открыть файл hosts в linux

Работая в других OC вы может уже и знаете где находится файл hosts, но перейдя на Ubuntu Linux, вы можете немного потеряться где данный файл находится и как его редактировать.

Что такое файл hosts? Где он находится в Ubuntu и как его редактировать, вам интересно, читаем материал ниже.

HOSTS - это текстовый файл, который содержит базу данных доменных имен и используется для их трансляции в сетевые адреса узлов. Запрос к этому файлу играет очень важную роль и имеет очень высокий приоритет перед обращением к DNS-серверам. В отличие от DNS который обновляется от 30 минут до 2-3 суток, содержимое файла контролируется администратором компьютера и может обновляться в любой момент при необходимости.

Работая в других OC, вы может уже и знаете где находится файл hosts, но перейдя на любую другую, например Ubuntu Linux, вы без подсказки будете долго искать, а где данный файл находится и как его редактировать.

  • C:\WINDOWS\system32\drivers\etc - в Windows
  • /etc/hosts - В Ubuntu

Для открытия файла hosts на редактирование в Ubuntu, откройте терминал (CTRL+ALT+T) и выполните команду:

Sudo gedit /etc/hosts

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

127.0.0.1 localhost 127.0.1.1 your-pc # The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters

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

Файл hosts имеет следующий формат:

{IP - IP адрес узла} {Название хоста - имя узла в домене}.{Домен - доменное имя} {Алиас - определяет дополнительное имя узла}

Более подробную информацию по работе с файлом hosts вы можете получить выполнив в терминале команду man hosts .

Пример записи:

193.109.247.234 linuxsoid.com 88.212.202.38 li.ru

вот так все просто, вносим изменения, сохраняем и готово, будут вопросы, спрашивайте в комментариях к материалу.

НАЗВАНИЕ
hosts - статическая таблица преобразования IP-адресов в
имена машин

СИНТАКСИС
/etc/hosts

ОПИСАНИЕ
На это странице содержится описание формата файла
/etc/hosts. Этот файл содержит текст, описывающий
соответствие IP-адресов и имен машин (по одному адресу в
строке). Для каждой машины в одной строке должна
присутствовать следующая информация:

IP_адрес каноническое_имя алиасы

Поля этой записи отделяются друг от друга пробелами и/или
табуляциями. Текст, начинающийся с символа "#", до конца
строки считается комментарием и игнорируется. Имена машин
могут содержать любой печатный символ, кроме разделителя
полей, символа новой строки или символа комментария.
Алиасы представляют собой измененные, альтернативные,
укороченные или обобщенные формы имен машин (например,
localhost). Формат таблицы имен машин описан в RFC 952.

Сервер доменных имен интернет Berkeley (BIND) содержит
сервер интернет-имен для машин UNIX. Он заменяет файл
/etc/hosts или систему поиска машин и освобождает машину
от необходимости полного подробного заполнения файла
/etc/hosts.

Несмотря на то, что функции этой таблицы давно исполняются
DNS, она все еще используется для

Начальной загрузки системы.
Во многих системах есть небольшая таблица имен
машин, содержащая информацию об именах и адресах
важных машин в локальной сети. Это полезно в том
случае, если DNS не работает, например, при
загрузке системы.

NIS Сайты, работающие с NIS, используют таблицу имен
машин в качестве источника информации для базы
данных машин NIS. Несмотря на то, что NIS может
работать и с DNS, многие NIS-сайты используют
таблицу имен машин со строками для всех машин
локальной сети в качестве подстраховки.

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

ПРИМЕР
127.0.0.1 localhost
192.168.1.10 foo.mydomain.org foo
192.168.1.13 bar.mydomain.org bar
216.234.231.5 master.debian.org master
205.230.163.103 www.opensource.org

ИСТОРИЧЕСКАЯ СПРАВКА
Перед введением DNS, таблица имен машин была единственным
средством для преобразования имен машин в адреса в
растущей сети интернет. На самом деле, этот файл
создавался на основе официальной базы данных машин,
поддерживаемой в Сетевом информационном контрольном центре
(NIC), а также на основе локальных исправлений, содержащих
неофициальные алиасы и/или информацию о неизвестных
машинах. NIC больше не поддерживает файлы hosts.txt,
однако, во время написания этой страницы (около 2000 года)
существовали старые файлы hosts.txt на WWW. Они были
найдены; даты их размещения - 92, 94 и 95 годы.

Хочу рассказать о несколько нестандартном способе с помощью которого можно открывать в браузере сайты, используя короткие имена. Например, вместо того чтобы набирать в браузере «yandex.ru» можно просто набрать одну букву «y». Поможет нам в этом файл /etc/hosts.

Файл /etc/hosts

В файле /etc/hosts задаются соответствия между IP адресом и именем хоста (hostname, домен), а также их псевдонимами (также называются, синонимами, алиасами). Когда вы обращаетесь к какому-нибудь адресу в сети, например, http://yandex.ru, то для доступа к сайту системе требуется вначале преобразовать адрес сайта в соответствующий ему IP адрес, для этого система запрашивает IP адрес у DNS сервера. Если в файле /etc/hosts прописано соответствие между yandex.ru и IP адресом, тогда система будет использовать именно этот IP адрес. А так как мы можем в файле /etc/hosts указать еще и псевдоним, по которому будет доступен конкретный IP адрес, то мы можем указать, например, для yandex.ru псевдоним «y». Соответственно, при запросе «y» в своем браузере, система прочитает IP адрес в файле /etc/hosts и откроет сайт yandex.ru. То есть /etc/hosts, это своего рода локальный DNS сервер.

Как узнать IP адрес сайта

Теперь нам нужно определить IP адреса сайтов, которые мы хотим добавить в /etc/hosts. Стоит отметить, что не все сайты имеют отдельный выделенный IP адрес и получить к ним доступ только по IP адресу нельзя. Но почти все крупные сайты и порталы имеют свой выделенный IP адрес. Простой способ узнать IP адрес сайта это использовать командну ping:

Ping адрес-сайта.ru

Например, выполним:

ping yandex.ru

На экране отобразится процесс пинга (чтобы прервать нажмите Ctrl+C). Итак, мы получим вывод команды ping вида:

PING yandex.ru (87.250.250.11) 56(84) bytes of data. 64 bytes from yandex.ru (87.250.250.11): icmp_seq=1 ttl=57 time=3.57 ms ...

Здесь видно, что yandex.ru соответствует IP адресу 87.250.250.11. Аналогично, выполняем для других сайтов.

Редактирование файла /etc/hosts

Редактировать файл /etc/hosts нужно осторожно, чтобы ничего не испортить, так как это системный файл и важно не нарушать его синтаксис. Откройте файл для редактирования, для этого выполните в командной строке:

Sudo gedit /etc/hosts

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

127.0.0.1 localhost::1 mycomp localhost6.localdomain6 localhost6 127.0.1.1 mycomp # The following lines are desirable for IPv6 capable hosts::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ...

Синтаксис у файла /etc/hosts очень простой:

IP-адрес имя-хоста [псевдонимы, ...]

Добавим в файл новые строки для разных сайтов:

74.125.232.19 google.ru g 94.100.191.203 mail.ru m 194.186.36.211 rbc.ru r 87.250.250.11 yandex.ru y

Сохраните и закройте файл. Мы прописали соответствия между IP адресами, именами сайтов и их псевдонимами. Теперь перейдите в браузер и в адресной строке введите просто «g», должен открыться сайт google.ru. Чтобы открыть mail.ru введите просто «m», для rbc.ru — просто «r», yandex.ru — «y».

Author Shekin Reading 6 min Published by July 21, 2015

A little-known feature called “ the hosts file ” can be used to modify your system depending on your needs. Whether you need to create abbreviations to block websites or something else , all of this can be done using the hosts file.
But how can I make changes to it ? Here we will tell you how , and provide some examples , so you can start using the file right now .

What is the hosts file?
If we talk in plain language, the hosts file is a simple text file that can be used on any operating system for translating host names into IP addresses. When you type a host name – for example, facebook.com or сайт – your system will check the hosts file to get the IP address, which is required for connecting to the appropriate server. But if you open this file on your computer, you will quickly find that there is not stored a directory of all websites on the Internet. There may be just a few lines and nothing more. Your system is always first checks the hosts file, and everything not specified in it, will be found on the DNS servers configured in your network settings (usually a server of your Internet provider).

But it also means that you can use the Hosts file to add addresses that cannot be provided DNS servers (for example, it may be aliases of different locations on your home network that otherwise would be available only if the local network is installed and configured your own DNS server), or to bypass the IP addresses provided by your DNS servers by default.

For example, if you ask your browser to open facebook.com the DNS server will return the IP address of Facebook on your PC. But if you suddenly want to block Facebook on your computer, you can add to hosts file entry that points to your computer that all requests for facebook.com need to redirect to some other IP address that is different from the real IP address of Facebook. To block this social network, you can simply register a transfer of requests facebook.com the IP address 127.0.0.1 , which will always return to your system. You can do a lot with this file, and this is just a very simple example – it all depends on your desires and needs.

Warning : keep in mind, hosts this is a system file , edit it only if you know what you’re doing it !

How to edit hosts file
In Linux Mint you can find hosts file in /etc/hosts . Since this is a plain text file, you can just use a plain text editor (whether terminal or graphical). Unfortunately, there is only one graphic tool that provides partial control of the hosts file is the application Domain Blocker for Linux Mint.

This program works by adding entries to your hosts file which redirects your specified domains to 127.0.0.1 – that is on your computer. Anyway, that’s all you can do with Domain Blocker – all other use of the hosts file require you to manually edit the file with a text editor.

As hosts it is a system file , you’ll need administrative rights to save changes to the file. However, you can edit it using terminal commands such as

sudo nano / etc/hosts

sudo gedit /etc/hosts

You can also replace the nano or gedit on the command to start your favorite text editor . When you’re finished editing the file in nano , you can press Ctrl +X and then y to confirm the overwriting of changes.

How to understand the format of the contents of the hosts file ?
In the hosts file each record is on its own line. For the purposes of our article you can use a very simple syntax – you type the IP address to which you want to redirect the host name (domain) , then the tab character (TAB) and the actual domain . For example , to block Facebook , you can enter 127.0.0.1-facebook.com where is the Tab key on your keyboard . To make sure it is entered correctly , you can also look at the screenshot and compare it with what is in your file.

Hosts – change and manage the /etc/hosts file

Here is another example of use of this opportunity . For example , if your home network is the computer (for example, its IP address is 192.168.100.1 ) running a simple website that makes something useful for you. You can enter the following in the hosts file : 192.168.100.1 –myhomeserver . Now , if you open your browser and just type in the address bar http://myhomeserver it will automatically show you the contents of the host 192.168.100.10 . It is much easier than to enter the IP address every time.

Potential problems
The only problem that I came across, related to the work of the Chrome browser. Chrome tends to ignore the hosts file, if you don’t do at least one of two possible things:
– to enter http:// in front of each address. For example, if you blocked Facebook via hosts file, Chrome will bypass the lock if you simply enter facebook.com in the address bar. If you enter http://facebook.com in the address bar, Chrome “listen” hosts file and block the website of this social network.
– disable the option “Use a web service to help resolve navigation errors ” in the Chrome settings, and then you don’t have to type http:// before the address each time

Try it!
Hosts is a small magic file, which offers several useful features. Even if you don’t need any features that it provides (although, perhaps , you think ), to see how it works will be very helpful. If you ever get into a situation where you could use the hosts file, you are familiar with them and know how to configure.

What is in your hosts file ? Are there any unique cases of such use ? Tell us in the comments !

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

Всему причиной файл hosts. Если вы раньше пользовались Windows, то, наверное, уже слышали о таком файле. Там чаще всего он использовался для того, чтобы быстро заблокировать доступ к какому-либо ресурсу. Но применение его гораздо шире. В этой статье мы рассмотрим, как настроить файл hosts в Linux, а также какие возможности он нам предоставляет.

Прежде чем мы перейдём к самому файлу hosts, нужно разобраться, как происходит поиск IP-адреса для доменного имени в Linux. Я говорил, что операционная система сразу же отправляет запрос DNS-серверу, но это не совсем так. Существует определённый порядок поиска, согласно которому он выполняется. Этот порядок установлен в конфигурационном файле /etc/nsswitch.conf

cat /etc/nsswitch.conf

Здесь нас интересует строчка hosts. В ней в порядке очередности записаны службы, которые используются для поиска IP-адреса для доменного имени. Пункт files означает использование файла /etc/hosts, а dns - сервиса доменных имён интернета. Если files расположена перед hosts, это означает, что сначала система попытается найти домен в /etc/hosts, а уже потом по DNS. По умолчанию дело обстоит именно так.

Настройка файла hosts в Linux

Нужный нам файл находится в директории /etc/. Для его открытия можно использовать любой текстовый редактор как в командной строке, так и в графическом интерфейсе, только открывать его нужно с правами суперпользователя. Например, с помощью vim:

sudo vi /etc/hosts

sudo gedit /etc/hosts

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

ip_адрес домен алиас

Обычно первая же строчка создаёт правило для перенаправления всех запросов к домену localhost на локальный IP-адрес - 127.0.0.1:

127.0.0.1 localhost

Также в этом файле по умолчанию размещаются перенаправления для имени вашего компьютера и для IPv6-адресов. Вы можете создать свои настройки для любого нужного домена. Для этого нужно добавить строчку в конец файла..0.0.1:

127.0.0.1 сайт

Обратите внимание, что здесь указывается только домен, без протокола. Префикс http или https указывать не нужно, иначе ничего работать не будет. А вот для поддомена www нужно создавать отдельную запись или записывать его в виде алиаса. Например:

127.0.0..сайт

Теперь при запросе домена сайт будет открываться наш локальный IP. Чтобы вернуть доступ к оригинальному ресурсу, достаточно убрать добавленную строчку. Но вы можете использовать не только локальный адрес, но и любой другой. Это очень удобно, если вы только зарегистрировали домен и доменная зона ещё не успела обновиться, а вы уже хотите работать с новым сайтом. Просто добавьте данные в /etc/hosts и работайте как обычно.

Выводы

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

Об авторе

Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.