host.conf(5) — Arch manual pages
host.conf(5) | File Formats Manual | host.conf(5) |
host.conf — файл с настройками для резолвера
В файле /etc/host.conf содержатся настройки для библиотеки резолвера (resolver). Данный файл должен содержать в каждой строке одно ключевое слово, за которым следует информация о соответствующей этому ключевому слову настройке. Ключевые слова:
- 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 resolver 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(5) file.
- multi
- Допустимыми для этого ключевого слова являются значения on и off. Если задано on, то библиотека резолвера будет возвращать все допустимые адреса узла, которые встретились в файле /etc/hosts, а не только первый из них. По умолчанию используется off, так как в противном случае возможно существенное снижение производительности на машинах с большими файлами узлов.
- reorder
- Допустимыми
для этого
ключевого
слова
являются
значения on и off. Если
задано on,
то
библиотека
резолвера
будет
пытаться
перегруппировать
адреса
узлов так,
чтобы
локальные
адреса (т.
е. адреса в той же подсети) были выданы первыми, когда выполняется вызов gethostbyname(3). Перегруппировка выполняется для всех методов поиска. По умолчанию значение установлено в off.
Существуют переменные окружения, которые могут быть использованы, чтобы позволить пользователям изменить поведение, настроенное через /etc/host.conf:
- RESOLV_HOST_CONF
- Если
значение
этой
переменной
является
именем
файла, то
он будет
прочитан
вместо
файла
- RESOLV_MULTI
- Заменяет значение ключа multi.
- RESOLV_REORDER
- Заменяет значение ключа reorder.
- 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.
- /etc/host.conf
- Файл с настройками резолвера
- /etc/resolv.conf
- Файл с настройками резолвера
- /etc/hosts
- Локальная база данных узлов
Существуют следующие различия с первоначальной реализацией: новая команда spoof и новая переменная окружения RESOLV_SPOOF_CHECK могут быть установлены в значение off, nowarn и warn. Комментарии могут вставляться везде, а не только в начале строки.
Современным
способом
управления
порядком
поиска
узлов
является
файл nsswitch. conf(5).
В glibc 2.4 и старее, распознаётся следующее ключевое слово:
- order
- Данное
ключевое
слово
задает
метод, с
помощью
которого
будет
осуществляться
поиск
адреса
узла. За
этим
словом
должно
следовать
одно или
несколько
названий
методов,
разделённых
запятыми.
Допустимы
следующие
названия
методов:
- RESOLV_SERV_ORDER
- Заменяет команду order.
Начиная с glibc 2.0.7 и до версии 2.24 не обрабатываются, но распознаются следующие ключевые слова и переменная окружения:
- nospoof
- Допустимыми
для этого
ключевого
слова
являются
значения on и off Если
задано on,
то
библиотека
резолвера
будет
пытаться
предотвратить
подмену
имён узлов
для
усиления
безопасности rlogin and rsh.
Это работает так: после выполнения поиска адреса узла по имени, библиотека резолвера будет выполнять поиск имени узла по адресу. Если два имени не совпадут, то запрос завершается ошибкой. По умолчанию значение установлено в off.
- spoofalert
- Допустимыми для этого ключевого слова являются значения on и off. Если задано on и при этом также установлен параметр nospoof, то библиотека резолвера будет записывать в системный журнал предупреждения об ошибках через syslog. По умолчанию значение установлено в off.
spoof- Допустимыми
для этого
ключевого
слова
являются
значения off, nowarn и warn.
Если задано off, то подмена адресов допускается и в системный журнал через syslog не будет попадать никаких предупреждающих сообщений. Если значение параметра равно warn, то библиотека резолвера будет пытаться предотвратить обман по именам узлов для усиления безопасности и в системный журнал через syslog будут записываться предупреждения об ошибках. Если значение параметра равно nowarn, то библиотека резолвера будет пытаться предотвратить обман по именам узлов для усиления безопасности, но предупреждающие сообщения генерироваться не будут. Присвоение других значений будет считаться установкой в значение nowarn.
- RESOLV_SPOOF_CHECK
- Заменяет значение ключей nospoof, spoofalert и spoof тем же способом как задаётся значение для ключа spoof. Допустимыми являются значения off, nowarn и warn.
gethostbyname(3), hosts(5), nsswitch.conf(5), resolv.conf(5), hostname(7), named(8)
Русский перевод этой страницы руководства был сделан Yuri Kozlov <[email protected]> и Иван Павлов <[email protected]>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
man-pages-ru-talks@lists. sourceforge.net.
5 февраля 2023 г. | Linux man-pages 6.03 |
где находится и как его изменить
Справочная информация >> Часто задаваемые вопросы >> Технические вопросы (MySQL, FTP, SSH и т.п.) >> Файл hosts: где находится и как его изменить
Файл hosts — текстовый документ, который содержит в себе информацию о домене и IP-адресе, который ему соответствует. Со дня своего появления файл hosts служил неким маршрутизатором, пока на замену ему не пришла служба DNS. Но он по-прежнему используется как инструмент, который обладает приоритетом в обращение с DNS-серверами. Как работают DNS-сервера вы можете узнать в статье «Что такое DNS».
Зачем нужен файл hosts
После регистрации домена, нужно дождаться делегирования домена (делегирование домена — это четкое определение его места на сервере, для его существования) на DNS-серверы. В файле hosts вы можете указать ваш домен и IP-адрес хостинга, а затем открыть браузер и зайти на ваш сайт, не дожидаясь делегирования домена. Также с его помощью вы можете заблокировать на локальном компьютере доступ к определённому сайту, указав соответствующую запись.
Где находится файл hosts
- Windows XP, 2003, Vista, 7, 8, 10 —
c:\windows\system32\drivers\etc\hosts
; - Linux, Ubuntu, Unix, BSD —
/etc/hosts
; - macOS —
/private/etc/hosts
.
Редактировать файл etc hosts нужно от имени администратора, иначе вы не сможете сохранить внесённые изменения.
Как внести изменения в файл hosts
Ниже мы рассмотрим, как редактировать и как сохранить изменения в файле hosts. Важно открыть файл с правами администратора, иначе система не даст вам его сохранить.
В Windows 8, 10
Чтобы изменить файл hosts в Windows 8, 10, выполните следующие действия:
Запустите «Блокнот» или любой другой редактор от имени администратора:
В меню «Файл» нажмите Открыть и перейдите в каталог, где находится файл hosts.
Измените тип файла на «Все файлы»:
Выберите файл hosts и откройте его:
Добавьте в конце файла необходимую запись в формате:
000.000.000.000 hostland.ru www.hostland.ru
000.000.000.000 — IP-адрес вашего сервера или хостинга;
hostland.ru www.hostland.ru — имя вашего домена.
- Сохраните изменения в файле.
Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
В Linux, Unix
Чтобы изменить файл hosts в Linux, Unix , выполните следующие действия:
В Linux файл hosts находится в папке etc. Чтобы отредактировать его, введите втерминал linux команду:
sudo nano /etc/hosts
Добавьте в конце файла необходимую запись в формате:
000.000.000.000 hostland.ru www.hostland.ru
000.000.000.000 — IP-адрес вашего сервера или хостинга;
hostland.ru www.hostland.
ru — имя вашего домена.
- Сохраните изменения в файле.
Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
Файл hosts в Ubuntu редактируется так же, как и во всех Unix-системах.
В MacOS
Файл hosts в Mac OS расположен в каталоге: /private/etc/hosts
. Чтобы изменить его выполните следующие действия:
- Запустите терминал с помощью горячих клавиш:
Command (⌘) + T
или через Spotlight; Введите команду:
sudo nano /etc/hosts
и нажмите Enter:
Добавьте в конце файла необходимую запись в формате:
000.
000.000.000 hostland.ru www.hostland.ru
000.000.000.000 — IP-адрес вашего сервера или хостинга;
hostland.ru www.hostland.ru — имя вашего домена.
- Сохраните изменения в файле.
Теперь вы можете открыть ваш сайт в браузере, недожидаясь обновления DNS-серверов.
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из панели управления хостингом, раздел «Помощь и поддержка».
Файловая система. Какая польза от /etc/hosts?
спросил
Изменено 6 лет, 2 месяца назад
Просмотрено 91к раз
Я новичок в Ubuntu и хочу знать: каково точное использование /etc/hosts
?
Допустим, я добавляю в него это:
127.0.x.x мой домен
Что это значит?
- файловая система
- Интернет
Файл hosts является одним из нескольких системных средств, помогающих адресовать сетевые узлы в компьютерной сети. Это обычная часть реализации интернет-протокола (IP) операционной системы, которая выполняет функцию преобразования удобных для человека имен хостов в числовые адреса протокола, называемые IP-адресами, которые идентифицируют и определяют местонахождение хоста в IP-сети. В некоторых операционных системах содержимое файла hosts используется предпочтительно по сравнению с другими методами, такими как система доменных имен (DNS), но многие системы реализуют переключатели службы имен (например, nsswitch.conf для Linux и Unix) для обеспечения настройки. В отличие от DNS, файл hosts находится под непосредственным контролем администратора локального компьютера 9.0005
Файл hosts содержит текстовые строки, состоящие из IP-адреса в первом текстовом поле, за которым следует одно или несколько имен хостов.
.Каждое поле отделяется пробелом (пробелы или символы табуляции). Могут быть включены строки комментариев; они обозначаются решеткой (#) в первой позиции таких строк. Полностью пустые строки в файле игнорируются. Например, типичный файл hosts может содержать следующее:
# Это пример файла hosts 127.0.0.1 петля на локальном хосте ::1 локальный хостЭтот пример содержит только записи для петлевых адресов системы и их имен хостов, что является типичным содержимым файла hosts по умолчанию. В примере показано, что IP-адрес может иметь несколько имен хостов и что имя хоста может быть сопоставлено с несколькими IP-адресами.
Википедия
Это неверно (?):
127.0.xx mydomain
Подстановочные знаки: *
, поэтому должно быть 127.0.*.*
, но я почти ничего не вижу, кроме 127.0.0.1
😉
Это означает, что вы можете использовать mydomain
в качестве имени для этого IP-адреса. Легче использовать
www.google.com
, чем помнить IP-адрес ( 74.125.132.106
), который Google использует для своей поисковой системы. То же самое работает локально (localhost) на вашем компьютере. Если вы запускаете свой собственный экземпляр Apache, вы можете установить локальный IP-адрес на имя и использовать это имя в браузере.
::1
в примере — это версия IP v6 для IP-адресов.
0
Это означает, что система не будет выполнять поиск DNS для mydomain
, он будет автоматически перенаправлен на IP-адрес, указанный вами в файле hosts.
В большинстве систем запись по умолчанию в файле hosts:
127.0.0.1 localhost
127.0.0.1
— это всегда адрес компьютера, на котором вы находитесь. Например, если вы запускаете веб-сервер на своем компьютере, вы можете получить к нему доступ из веб-браузера через http://localhost:port
вместо ввода всего IP-адреса http://127.
. 0.0.1:port
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
.
12.04 — Почему файл /etc/hosts не работает?
Задавать вопрос
спросил
Изменено 1 год, 7 месяцев назад
Просмотрено 157 тысяч раз
У меня были проблемы с этим некоторое время, и я перепробовал все, что знал, поэтому я решил, что наконец пришло время обратиться за помощью.
Любое изменение, которое я делаю в /etc/hosts
, просто не работает.
Пример:
julian@ifrit:~$ cat /etc/hosts 127.0.0.1 локальный хост 127.0.1.1 ифрит 192.168.1.100 dev.julianfernand.es
В приведенном выше примере, когда я получаю доступ к dev.
(этого не существует), он должен загружаться из julianfernand.es
192.168.1.100
.
Если я пингую, все работает нормально. Однако, когда я получаю доступ к dev.julianfernand.es
с помощью Google Chrome или Firefox, это не так.
Теперь, после пары перезагрузок, все работает. Но поскольку я работаю в управляемой хостинговой компании WordPress, мне приходится сталкиваться со многими ситуациями, когда мне приходится редактировать свой файл, чтобы увидеть сайт клиента на нашем сервере.
Я просто не могу больше перезагружать свой компьютер. Это совсем не продуктивно. Перезапуск сетевой службы не работает, то же самое касается очистки кеша (даже внутреннего кеша Chrome DNS).
У кого-нибудь есть идея? Это происходит с elementaryOS (на основе Ubuntu 12.04) и Ubuntu 13.10 (ежедневно). С другой версией пока не пробовал.
PS: Если это имеет значение, у меня есть сервер NGINX, работающий на этой машине с PHP-FPM и MySQL.
Заранее спасибо 🙂
- 12.04
- сеть
- DNS
- хосты
4
В Ubuntu, если вы хотите очистить кэш DNS, вам необходимо перезапустить демон nscd
.
Установите nscd
с помощью следующей команды:
sudo apt-get install nscd
Очистить кеш DNS в Ubuntu с помощью следующей команды:
перезапуск службы sudo nscd
ИЛИ
служба sudo dns-чистый запуск
Ссылка: http://www.upubuntu.com/2012/05/how-to-flush-clear-dns-cache-under.html
2
Для меня решением было отредактировать файл /etc/nsswitch.conf
(вы можете использовать команду sudo vim /etc/nsswitch.conf
). Я изменил строку:
hosts: файлы mdns4_minimal [NOTFOUND=return] dns
для:
хостов: файлы DNS mdns4_minimal [NOTFOUND=return]
и теперь он работает как положено!
3
У меня сработало следующее: добавить
addn-hosts=/etc/hosts
в
/etc/NetworkManager/dnsmasq.d/hosts.conf
убить dnsmasq и
перезапустить службу NetworkManager
1
Принятый ответ работает с 12.04 по 13.04 путем отключения dnsmasq
, но у меня он перестал работать в 13.10. Я нашел следующее новое решение для 13.10.
Отредактируйте файл /etc/default/dnsmasq и измените ENABLED=1
на ENABLED=0
и перезапустите.
2
Откуда: http://blog.calebthorne.com/2012/08/broken-etchosts-in-ubuntu-1204.html
Новая «функция» настольной версии Ubuntu 12.04 — использовать dnsmasq
в качестве плагина к NetworkManager для локального DNS. Dnsmasq предназначен для ускорения служб DNS и DHCP, но имеет один неприятный побочный эффект: dnsmasq
кэширует локальный DNS и игнорирует изменения в /etc/hosts
. Я часто вношу изменения в файл hosts во время работы с веб-сайтами, поэтому эта «функция» меня сильно раздражала.
Решение — отключить dnsmasq
в файле конфигурации Networkmanager. Открыть /etc/NetworkManager/NetworkManager.conf
и закомментируйте строку:
dns=dnsmasq
Мой файл NetworkManager.conf
содержит следующее:
[основной] плагины = ifupdown, ключевой файл # dns=dnsmasq [ifupdown] управляемый = ложь
См. также https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/993298
3
Глупо, но в моем случае «виноват» кеш браузера = должно быть очевидно для разработчика 🙁
Еще одна глупая (очевидная) вещь, которую я упустил. Браузеры (Chrome, Mozilla) выполняют поиск в Google (или поисковой системе) прямо из адресной строки, поэтому вместо разрешения адреса, который вы дали, они ищут это слово в Интернете!
Решение:
После редактирования файла /etc/hosts пропингуйте выбранный адрес! Если команда ping разрешает IP-адрес, который вы указали, файл «hosts» работает!
Очистить кеш браузера (браузеры кэшируют разрешения DNS на некоторое время (TTL))
Отключить поисковую систему по умолчанию используемого вами браузера
1
- Создать
/etc/NetworkManager/dnsmasq.
.d/hosts.conf
- Поместите в него строки типа
address=/whatever/1.2.3.4
. См. документы (ищите--адрес
). Возможны подстановочные знаки:address/.whatever./1.2.3.4
. - Убить
dnsmasq
(ошибка). - Перезапустите его:
$ перезапуск диспетчера сети службы
.
Изменить /etc/nsswitch.conf
, закомментировать строку ниже, добавив # перед строкой
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
и добавить
хостов: файлы mdns4_minimal [NOTFOUND=return] dns
В основном конфигурация изменена. Теперь процесс поиска домена сначала будет обращаться к файлу /etc/hosts
, а затем к DNS. С конфигурацией по умолчанию он сначала консультируется с DNS, прежде чем с любыми другими соответствующими службами или файлами.
Для быстрой проверки работоспособности вы можете использовать
sudo python -m SimpleHTTPServer 80
, чтобы создать простой HTTP-сервер для обслуживания файлов из каталога, а затем прокомментировать строку ниже в файле /etc/hosts
127.0.0.1 localhost 127.0.1.1 01hw730983
и добавьте содержимое
127.0.0.1
, затем перейдите в браузер и введите content/
, если вы видите, что структура каталогов работает, иначе нет.
Похоже, ваша установка очень похожа на мою. У меня есть коробка с Ubuntu в качестве моего офисного сервера и хоста для разработки. На этом компьютере я запускаю приложения Nginx, Apache, Tomcat, Rails и все, что мне нужно.
С моего Mac я могу просто добавить запись hosts и загрузить сервер с любым именем, которое мне нужно, но с клиента ElementaryOS это не работает.
Я пробовал указанные выше исправления, но безуспешно.
Я запустил Squid Proxy Server и добавил имена хостов в /etc/hosts на сервере. (Редактирование требует перезапуска squid.)
После этого выполните соответствующие настройки прокси в браузере или панели управления ОС.
Проверьте права доступа к файлу /etc/hosts
.
В моей облачной службе после клонирования сервера права доступа к файлу hosts изменились с 644
на 600
, поэтому файл не может быть прочитан apache ( www-data
), я думаю.
Ваш комментарий будет первым