В чем разница между локальным адресом 127.0.0.1 и 127.0.1.1

48

Я только учусь использовать Ubuntu, и когда я пытался настроить DNS, мне нужно было что-то сделать с помощью localhost, loopback interface. Может ли кто-нибудь объяснить мне разницу между ними и смыслом адресов 127.0.0.1 и 127.0.1.1, когда я должен использовать 127.0.0.1 и когда я должен использовать 127.0.1.1

Ock
источник
1
^^^ Я печатал свой ответ, и @jdv вставлял его в комментарии ...
Мадивад,

Ответы:

36

Когда ваша машина запускается, ей необходимо знать, как некоторые имена хостов сопоставляются с IP-адресами, прежде чем можно будет ссылаться на DNS. Это отображение хранится в файле / etc / hosts. При отсутствии сервера имен любая сетевая программа в вашей системе обращается к этому файлу для определения IP-адреса, соответствующего имени хоста.

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

loopback по умолчанию является интерфейсом lo и ip 127.0.0.1

127.0.0.1 localhost

Debian чем Ubuntu выбирают для определения 127.0.1.1 для отображения ip вашего host_name в случае, если у вас нет сети

Имя_хоста совпадает с именем хоста, определенным в "/ etc / hostname".

Для системы с постоянным IP-адресом этот постоянный IP-адрес должен использоваться здесь вместо 127.0.1.1.

127.0.1.1 имя_хоста

Паскаль Фарес
источник
1
Я понимаю философию, но я не согласен с ее формой в / etc / hosts.
Энтони Ратледж
21

На самом деле это ничего не значит (это просто еще один IP в блоке 127.0.0.0/8).

Причина, по которой он используется в качестве IP-адреса вашего имени хоста, объясняется в Разделе 10.4 Справочного руководства Debian.

Quote:

Некоторое программное обеспечение (например, GNOME) ожидает, что системное имя хоста будет разрешено в IP-адрес с каноническим полностью определенным доменным именем. Это действительно неправильно, потому что системные имена хостов и доменные имена - это две разные вещи; но там у вас есть это. Для поддержки этого программного обеспечения необходимо убедиться, что системное имя хоста может быть разрешено. Чаще всего это делается путем помещения строки в / etc / hosts, содержащей некоторый IP-адрес и имя хоста системы. Если ваша система имеет постоянный IP-адрес, используйте его; в противном случае используйте адрес 127.0.1.1.

Videonauth
источник
1

Следующий снимок экрана рассказывает интересную историю.

Ubuntu по умолчанию файл / etc / hosts и вывод ifconfig

По сути, это показывает, что 127.0.0.1это истинный адрес обратной связи. Таким образом, 127.0.1.1существует по причинам, отличным от основных IP-сетей.

Как упомянул @Videonauth, 127.0.1.1линия - это костыль, исправление, чтобы радовать привередливое программное обеспечение.

На мой взгляд, петлевая запись почти всегда должна быть в /etc/hosts. Если вы измените имя хоста по умолчанию на localhost, то измените имя хоста в 127.0.1.1строке, а не в 127.0.0.1строке.

Если вы измените свое имя хоста и дадите своему компьютеру статический IP-адрес, измените поля имени хоста и IP-адреса в строке 127.0.1.1.

Короче, оставь 127.0.0.1запись в покое.

Энтони Ратледж
источник
Итак, подведем итог: если вы применили статический ip, скажем, 192.168.1.1, то строку 127.0.1.1 следует заменить на 192.168.1.1 имя хоста. Это правильно?
Крис
192.168.1.1 <hostname>Да.
Энтони Ратледж
Спасибо, я не был уверен, что я настраиваю несколько виртуальных машин и файлы хоста, у которых есть это, я понял, что это было зацикливание для некоторых приложений, но тогда было 127.0.0.1, поэтому я не был уверен, должно ли оно остаться или нет ,
Крис