Назад | Перейти на главную страницу

Почему мое имя хоста отображается с адресом 127.0.1.1, а не 127.0.0.1 в / etc / hosts?

Это может быть немного глупый вопрос, но я взглянул на / etc / hosts в моей новой установке Xubuntu и увидел следующее:

127.0.0.1 localhost
127.0.1.1 myhostname

В большинстве никсов, которые я использовал, вторая строка опущена, и если я хочу добавить свое имя хоста в файл hosts, я просто сделаю это:

127.0.0.1 localhost myhostname

Есть ли разница между этими двумя файлами в практическом смысле?

Между ними нет большой разницы; 127/8 (например: 127.0.0.0 => 127.255.255.255) все привязаны к интерфейсу обратной связи.

Причина описана в руководстве Debian в Гл. 5 Настройка сети - 5.1.1. Разрешение имени хоста.

В конечном счете, это обходной путь; исходный отчет 316099.

Подводя итог связанной информации:

  • Это (спорный) полезно иметь запись в вашем /etc/hosts перевод полного доменного имени машины в постоянный IP-адрес.
  • debian-installer, а точнее, его netcfg компонент, в настоящее время (по крайней мере до марта 2013 г.) создает эту запись.
  • Если известно, что машина имеет постоянный IP-адрес, программа установки debian все равно хочет, чтобы у нее была такая запись.
  • Адрес 127.0.1.1 использует петлевой интерфейс, ответила ваша собственная машина, как и 127.0.0.1 но это отдельная запись в /etc/hosts которые можно рассматривать отдельно от 127.0.0.1 если / когда необходимо.

Томас Худ объясняет добавление этой записи следующим образом:

[Это] гарантирует, что если имя хоста UNIX является разрешено, тогда это всегда будет собственное каноническое имя хоста

но:

В конечном итоге имя хоста UNIX вообще не следует помещать в / etc / hosts.

Мне самому было любопытно, и мне не понравились другие ответы, потому что они, по крайней мере, не отвечали на то, что я искал.

Ответ: Оглядываясь на это док похоже, что Томас заявлял, что предоставление ему другого выделенного IP-адреса в петле позволяет ему быть каноническим.

Оба указывают на вашу петлю. Использование следующего 127.0.1.1 - это фактический IP-адрес в петле, тогда как 127.0.0.1 - это либо само устройство, либо другой IP-адрес в петле. Оба попадают в одну и ту же подсеть, представляющую петлю, но разделены ip. Они эквивалентны dns, но разделены из-за наличия выделенного ip.

Дело в том, что вы можете разместить все свои записи в одной строке, например

127.0.0.1 localhost localhost.domain www.myfakednsname.com myakednsname.com 

Если ваше имя хоста является локальным, что означает, что у вас нет глобальной записи DNS в Интернете, сопоставленной с фактическим IP-адресом в Интернете, тогда в этом случае Томас говорил вам НУЖНО иметь вторую строку ввода, например, чтобы посвятить ее там (каноническому).

127.0.0.1 localhost localhost.localdomain
127.0.1.1 myfakednsname

Я прочитал несколько ответов и, честно говоря, немного запутался.

Сначала я попытался понять, что такое каноническое имя хоста Вот.

Я могу сказать, что @cmroanirgo прав, говоря, что на моем ноутбуке с Ubuntu, вызывая

hostname --fqdn 

с участием /etc/hosts настроен так

127.0.0.1   localhost 
127.0.1.1   laptop

возвращается laptop, тогда как изменение файла следующим образом

127.0.0.1   localhost laptop

возвращается localhost.

Как это может повлиять, я понятия не имею, кроме того факта, что если у вас есть программное обеспечение, которое привязано к имени хоста, и вам нужно разговаривать с ним внутри вашего компьютера, не ожидайте, что сможете использовать имя хоста "localhost". для выполнения работы в этой настройке, поскольку они в конечном итоге разрешают два разных отдельных адреса.