Включити доменне ім’я чи ні в / etc / hosts?


15

Я встановлюю кластер VMWare вузлів CentOS. Чи найкраще застосовувати доменне ім’я після машини? У чому полягають потенційні проблеми, коли їх не буде? Чи ускладнює домен конфігурацію чи спрощує її?

Наприклад, якщо мій вузол знаходиться 192.168.1.93, я повинен змінити /etc/hostsвід

127.0.0.1 localhost.localdomain localhost

до

127.0.0.1 localhost.cluster localhost
192.168.1.93 computernode1.cluster computenode1

або

127.0.0.1 localhost
192.168.1.93 computenode1

або

#127.0.0.1 localhost
192.168.1.93 computenode1

або

192.168.1.93 localhost
192.168.1.93 computenode1

Відповіді:


24

Введення доменного імені /etc/hostsнеобов’язкове, і ви можете запустити систему без жодного поганого ефекту.

Єдиним недоліком його виключення є те, що повноцінне ім’я хоста системи не відображатиметься належним чином. Наприклад, hostname -f.

Спосіб виявлення повністю кваліфікованого імені хоста:

  1. Спочатку отримує ім’я хоста, або "коротке ім'я". Це вихід uname -nабо hostname.
  2. Потім він отримує IP-адресу для цього імені хоста, консультуючись /etc/hosts(або все, що у вас є /etc/resolv.conf, і повертається до останніх джерел, якщо їх не знайдено /etc/hosts).
  3. Після отримання IP-адреси він здійснює зворотний пошук шляхом повторної консультації /etc/hosts.
  4. Після того, як він має запис у /etc/hosts, перший запис використовується як повноцінне ім'я хоста.

Коротше кажучи, якщо ви хочете, щоб повноцінне ім'я хоста працювало, вам слід зробити:

127.0.0.1 fully.qualified.hostname hostname localhost.localdomain localhost

або

127.0.0.1 localhost.localdomain localhost
1.2.3.4 fully.qualified.hostname hostname

1
Я не вважав цього. Мати повноцінне ім’я хоста - це настільний ПК марно, і це може бути проблематично для ноутбука (тому що ноутбук, швидше за все, постачається в різних мережах), але це корисно для сервера. Наприклад, Apache2 скаржиться, коли не може визначити свій FQDN.
lgeorget

@lgeorget Ви також можете просто скористатись проблемою libnss-myhostnameвирішення вашого FQDN, але не потребує входу/etc/hsots
Ulrich Dangel

Конфігурація вище , може викликати проблеми, побачити цю дискусію про поточну практиці Debian про створення hostsфайлу, і це один на використанні (або її відсутність) в localhost.localdomainзапису.
Joó Ádám

1
sudoтакож скаржиться, якщо ім'я хоста немає /etc/hosts:sudo: unable to resolve host <hostname>
x-yuri

3

Поки ваш хост погоджується з вашим доменним іменем, вказавши його чи ні, /etc/hostsнічого не зміниться. Інша практика - це вказати його як domainпараметр в /etc/resolv.conf. Якщо його не вказати, це може спростити ваше життя, якщо одного дня ваш адміністратор мережі змінить його. Наскільки я знаю, це нічого не змінює.

Ви обов'язково повинні виїхати 127.0.0.1 localhostабо 127.0.0.1 localhost localhost.localdomainзайти /etc/hosts. Деякі додатки можуть почати дійсно дивну поведінку, це localhostприв'язується до будь-якого іншого, крім вашої зворотної адреси, оскільки це дійсно, дійсно, несподіване налаштування.


2

Вам потрібно вказати повноцінне доменне ім’я на першій позиції після IP-адреси.

Як ми читаємо у man 5 hosts:

Для кожного хоста має бути присутній один рядок із такою інформацією:

IP_адреса canonical_hostname [псевдоніми ...]

Якщо не дотримуватися правила, то деяке програмне забезпечення може зламатися. Наприклад, система керування конфігурацією ляльок може починати змінювати ваше ім'я хоста вперед і назад під час кожного запуску лише тому, що ви не вказали доменну частину або через те, що ви поставили псевдонім без домену на рядок перед FQDN.


0

Я не впевнений, що це дійсно "необов'язково" (як Патрік вказав вище). Я лише нарешті виявив проблему з дозволами nfs, що повертаються нікому: нікому. Схоже, для дозволів на належну роботу з монтажами nfs (за допомогою idmapd) доменне ім’я сервера повинно точно відповідати доменному імені клієнта. З деяких документів, які я знайшов - hostname -fмінус фактичне ім’я хоста повинно бути ідентичним між клієнтом і сервером АБО вам потрібно вказати доменне ім’я для клієнта /etc/idmapd.conf, що означає кожного клієнта.

Чи існує офіційне правило про те, де вказати доменне ім’я? domainnameКоманда не видається , щоб підняти його з / і т.д. / хостів .. тому введення в / і т.д. / хости турбує мене, так як це означає , що він зберігається в декількох місцях в файлової системі ..

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.