Это может быть немного глупый вопрос, но я взглянул на / 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 г.) создает эту запись.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". для выполнения работы в этой настройке, поскольку они в конечном итоге разрешают два разных отдельных адреса.