Щоб встановити ім'я хоста , використовуйте 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командою та перевірте вихід hostnamevs 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.