Щоб встановити ім'я хоста , використовуйте hostnamectl
, але тільки з ім'ям хоста, як це:
hostnamectl set-hostname nodename
Щоб встановити (DNS)/etc/hosts
файл редагування доменного імені та переконайтесь, що:
- Існує лінія
<machine's primary, non-loopback IP address> <hostname>.<domainname> <hostname>
є
- Немає інших рядків з
<some IP> <hostname>
, і це включає рядки з адресами 127.0.0.1
та ::1
(IPv6).
Зауважте, що якщо ви не використовуєте NIS, (none)
це правильний вихід під час виконання domainname
команди.
Щоб перевірити, чи правильно встановлено ваше доменне ім'я DNS, скористайтеся dnsdomainname
командою та перевірте вихід hostname
vs hostname -f
(FQDN).
Домен NIS проти DNS
Це питання збентежило мене, коли я вперше натрапив на нього. Здається, domainname
командування передувало популярності Інтернету. Замість доменного імені DNS воно показує або встановлює доменне ім’я NIS (мережева інформаційна служба), відоме як YP (Yellow Pages) (група комп'ютерів, які надають послуги, що надаються головним сервером NIS). Ця команда просто відображає ім'я, повернене getdomainname(2)
стандартною функцією бібліотеки. ( nisdomainname
і ypdomainname
альтернативні назви для цієї команди.)
Відображення доменного імені FQDN або DNS
Для перевірки доменного імені DNS (Internet) слід запустити dnsdomainname
команду або hostname
з -d, --domain
параметрами. (Зверніть увагу, що dnsdomainname
команду не можна використовувати для встановлення доменного імені DNS - вона використовується лише для її відображення.)
Щоб відобразити FQDN (повністю кваліфіковане ім'я домену) системи, запустіть hostname
з -f, --fqdn, --long
параметрами (аналогічно, цю команду не можна використовувати для встановлення частини доменного імені).
Вищезазначені команди використовують роздільник системи (реалізований gethostbyname(3)
функцією зі стандартної бібліотеки, як визначено POSIX) для визначення імені домену DNS та FQDN.
Дозвіл імені
У сучасних операційних системах, таких як RHEL 7, hosts
запис /etc/nsswitch.conf
використовується для вирішення імен хостів. У вашому апараті CentOS 7 ця лінія налаштована як (за замовчуванням для CentOS 7):
hosts: files dns
Це означає, що коли функції резолютора шукають імена хостів або IP-адресу, вони спочатку перевіряють запис у /etc/hosts
файлі, а потім спробують DNS-сервери, які перераховані в списку /etc/resolv.conf
.
Під час запуску hostname -f
для отримання FQDN хоста функції Resolver намагаються отримати FQDN для імені хоста системи. Якщо хост не вказаний у /etc/hosts
файлі або на відповідному сервері DNS, спроба завершується невдалою та hostname
повідомляє про це Name or service not known
.
Коли hostname -d
запускається для отримання доменного імені, виконуються ті ж самі операції, і частина доменного імені визначається за допомогою зняття частини імені хоста та першої крапки з FQDN.
Налаштуйте доменне ім’я
1. Оновіть відповідний сервер імен DNS
У моєму випадку я вже додав запис для моєї нової машини CentOS 7 на сервері DNS для моєї локальної локальної мережі, тому коли FQDN не був знайдений у /etc/hosts
файлі, коли я працював hostname
із параметром -d
або -f
, місцеві служби DNS змогли повністю вирішити FQDN для мого нового імені хоста.
2. Використовуйте /etc/hosts
файл
Якщо сервер DNS не був налаштований, повне кваліфіковане доменне ім’я можна вказати у /etc/hosts
файлі. Найпоширеніший спосіб зробити це - вказати первинну IP-адресу системи, а потім її FQDN та коротке ім'я хоста. Наприклад,
172.22.0.9 nodename.domainname nodename
Уривок зі hostname
сторінки людини
Ви не можете змінити FQDN за допомогою hostname
або dnsdomainname
.
Рекомендований спосіб встановлення FQDN - зробити так, щоб ім'я хоста було псевдонімом повноцінного імені за допомогою /etc/hosts,
DNS або NIS. Наприклад, якщо ім'я хоста було "ursula", у нього може бути рядок, у /etc/hosts
якому написано:
27.0.1.1 ursula.example.com ursula
Технічно: FQDN - це ім'я getaddrinfo (3), яке повертається для імені хоста, поверненого gethostname (2). Ім'я домену DNS - це частина після першої крапки.
Тому залежно від конфігурації резолютора (як правило, в /etc/host.conf
) залежить,
як ви можете його змінити. Зазвичай файл хостів аналізується перед DNS або NIS, тому найчастіше змінювати FQDN в
/etc/hosts
.
hostname -f
команда не працює на моєму CentOS VM.