Я прочитал Это руководство, и я немного запутался. Это то, что я не понимаю:
When your system tries to resolve a hostname to an IP address or determine the
ostname for an IP address, it refers to the /etc/hosts file before using the
name servers
Итак:
1) Когда система пытается определить имя хоста? Насколько я понимаю, когда заголовок дейтаграммы указывает имя хоста, я прав?
2) Почему это относится к hosts
до resolv.conf
?
3) После разрешения имени хоста система обращается к таблице маршрутизации?
1) Обычно Ваша система использовала бы сервер DNS на Вашем 'resolv.conf'. При посещении www.yahoo.com система свяжется с DNS, DNS возвращает IP-адрес того адреса, и системы затем знает, какой IP-адрес соответствует адрес www.yahoo.com.
2) Это использует hosts
прежде, чем попытаться разрешить адрес потому что hosts
файл используется для переопределения любого адреса, который Вы пытаетесь разрешить. т.е.: у Вас уже есть, вероятно, запись там, 127.0.0.1 localhost
говорит системе, что, при попытке связаться, хост с именем "localhost" она сделает так при помощи адреса 127.0.0.1, в этом случае его Ваш интерфейс lopback на Вашем eth0.
3) После того, как система знает адрес хоста любой взгляд непосредственно на Вашем hosts
или путем контакта с серверами DNS в 'resolv.conf' это посмотрит на таблицу маршрутизации для наблюдения, какое из правил объясняет, что сделать с трафиком с местом назначения к полученному IP-адресу.
Т.е.: Предположите, что у Вас есть 2 компьютера в Вашей сети с именами хостов "Ubuntu Одна" и "Ubuntu Два", каждому компьютеру, вероятно, присвоят это в host
файл:
127.0.0.1 localhost Ubuntu-One
для компьютера Ubuntu Один 127.0.0.1 localhost Ubuntu-Two
для компьютера Ubuntu Два
Это сделано автоматическое, и это - причина, можно разрешить 'localhost' и 'Ubuntu Одна" и "Ubuntu Два" на каждом соответствующие терминалы.
Попытайтесь проверить с помощью ping-запросов Ubuntu Два из Ubuntu Один и Ubuntu, Каждый свяжется с серверами DNS в Вашем resolv.conf
файл, серверы скажут, что "Я не знаю IP, связанного с тем адресом" и Вами, ПК ответит "Неизвестному имени хоста". Добавьте строку <IPADDRESSFROMUBUNTU-TWO Ubuntu-Two
к hosts
файл Ubuntu Один и один Вы пытаетесь проверить с помощью ping-запросов снова систему, будет видеть, что на файле hosts IP-адрес из Ubuntu Два является x.x.x.x, затем проверит Вашу таблицу маршрутизации для наблюдения, какое правило относится к тому диапазону IP или диапазону IP и свяжется с хостом с помощью указанного шлюза (или ни один). Это, то, почему hosts
когда-либо прежде resolv.conf
.
Нужно, по крайней мере, разрешить имя хоста в IP всякий раз, когда вы хотите подключиться к чему-либо. Сначала он использует настройки из / etc / hosts, потому что он локальный для вашей системы. Если вы не предоставили его, он будет искать его на ваших DNS-серверах, которые определены в resolv.conf.