Итак, я понимаю, что имя хоста должно (по крайней мере, в системах Debian) быть установлено в /etc/hostname
. Чтобы получить полное доменное имя (через hostname -f
) система находит IP от имени хоста через /etc/hosts
а затем возвращает первую запись в строке.
Итак, если имя хоста server1
и это в /etc/hosts
:
192.0.2.1 server1.example.com server1
Он вернется server1.example.com
. Вот как это описывается на многих сайтах. Но я подумал: почему бы не назначить имя хоста для адреса обратной связи? Как ты делаешь с localhost
:
127.0.0.1 server1.example.com server1 localhost
При таком подходе вам не нужно знать внешний IP-адрес. Кроме того, приложения, которые могут использовать полное доменное имя, будут делать запросы непосредственно в системе, а не через сеть.
Так почему бы не сделать это так? Почему в большинстве случаев в Интернете используется внешний IP-адрес?
Это мог быть плохой идеей по нескольким причинам
если у вас есть IP (и вы обмениваетесь данными с другими хостами), настоятельно рекомендуется поставить имя хоста перед внешне известным IP.
Некоторые протоколы могут сказать «скажите другому парню ваше имя хоста и его IP-адрес» «хорошо. Другой парень, я foo.localnetwork (127.0.0.1)». Другой парень получит этот пакет с внешним IP-адресом на уровне IP, но на уровне протокола с IP-адресом 127.0.0.1, поэтому обмену может быть затруднительно, если этому протоколу потребуется использовать объявленную информацию вместо Уровни IP (например, с SIP могут возникнуть проблемы ...)
Кроме того, некоторые службы связываются только с интерфейсом, содержащим IP-адрес, связанный с именем хоста, и поэтому эти службы смогут разговаривать только с хостом через устройство обратной связи, ни с кем другим ...
Это значение по умолчанию, по крайней мере, в новых выпусках Ubuntu.
Вот мой /etc/hosts
конфигурация:
127.0.0.1 localhost.localdomain localhost
127.0.1.1 sprinkler.internal.lan sprinkler
Это ни в коем случае не проблематично и, по сути, дает дополнительный эффект в виде отсутствия необходимости в рабочем DNS для некоторых операций.
Я лично стараюсь добавить еще несколько записей, таких как локальное репозиторий apt, некоторые конструкторы и т.