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


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

127.0.0.1 localhost
127.0.1.1 myhostname

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

127.0.0.1 localhost myhostname

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


186
2018-02-23 17:44


Источник


Интересно, могу ли я просто удалить вторую строку или какой-нибудь процесс в debian / ubuntu регенерировать линию и добавить ее обратно? - simgineer


Ответы:


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

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

В конечном счете, это обход проблемы; первоначальный отчет 316099,


146
2018-02-23 17:47



Именно то, что я искал, спасибо! - Tom
Фактическая причина: «Связывание имени хоста системы с последним имело нежелательный эффект от создания« localhost.localdomain »канонического имени хоста, связанного с системным именем хоста. То есть« hostname --fqdn »возвращал« localhost.localdomain »». - cmroanirgo
Я на самом деле проследил его до этого doc lists.debian.org/debian-boot/2005/06/msg00938.html, и, похоже, это потому, что Томас чувствовал необходимость использовать 1.1 вместо 0.1, что эквивалентно, исправить меня если я ошибаюсь, но это означает, что этот ответ на самом деле всего лишь сухаря? - Brian Thomas
@BrianThomas это сообщение подсказывает, почему они не эквивалентны. Они хотели localhost а также myhostname быть отличным - иначе, один был бы псевдонимом другого. Обратите внимание, что это не работает в IPv6, где есть только один адрес loopback. Этого можно избежать, используя модуль NSS, как указано в потоке, потому что он может быть более гибким, чем / etc / hosts, и возвращать разные имена каноников, несмотря на то, что они имеют одинаковый IP-адрес. Я знаю это, потому что моя система настроена с использованием такого модуля NSS, - sourcejedi


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

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

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

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

но:

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


42
2018-03-22 16:53





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

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

Оба указывают на вашу петлю. Используя следующее    127.0.1.1 представляет собой фактический IP-адрес по обратной связи, тогда как     127.0.0.1 это либо само устройство, либо другое ip на loopback. Оба заканчиваются в одной подсети, представляя loopback, но разделяются 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

5
2017-08-02 05:02



со всей справедливостью, после того, как я, наконец, составил этот способ, который имел смысл для меня, я вижу, что в значительной степени то, что эйнпоклум пытался объяснить, похоже на задним числом. - Brian Thomas
ОК отрицательный голос, не уверен, почему. Я все еще верю, что ЭТО ЛУЧШИЙ ответ, или я бы не поставил его, после приземления здесь. оригинальный ответ помог, но не захватил все детали. Я бы пошел с этим. - Brian Thomas