Чи повинен використовувати FQDN в / etc / name name замість імені хоста?


10

Як я читав на сторінці man, рекомендується ввести ім'я хоста (без доменного імені) /etc/hostname. Наприклад, хост замість host.domainsub.domaintld. Але, як я знаю, деякі програми залежать від наявності FQDNв /etc/hostname.

Що слід вказати /etc/hostname на машинах Debian / Ubuntu?

Якщо не FQDN, де замість цього слід вказати FQDN?

Я знаю, питання трохи старе, але не знайшов чіткої відповіді. Деякі кажуть ім’я хоста, деякі - FQDN. Дякую.


1
Де ви знаходите людей, які говорять про те, що ви помістили FQDN у файл / etc / hostname? Цей файл призначений лише для імені хоста системи.
Терранс

При читанні матеріалів про це в Інтернеті десь зустрічалися. І де слід вказати його FQDN?
Булат М.

@Terrance, насправді я хочу отримати відповіді від досвідчених людей на місцях, щоб вони показали, як це зробити «правильно» з самого початку. Напишіть як відповідь. І що робити в дистрибутивах, які не мають / etc / hostname?
Булат М.

Відповіді:


7

У файлі / etc / hostname ви використовуєте лише ім'я хоста. FQDN, який можна встановити на: / etc / hosts, який може виглядати так:

127.0.1.1        thishost.mydomain.org    thishost

Відповідно до посібника файлу хостів.

http://man7.org/linux/man-pages/man5/hosts.5.html


1
Виправлення: Але, дякую, але було б знати про плюси і мінуси вказувати / не вказувати FQDN в / etc / hostname. Я знаю про ваше рішення: це заглушка для програм, які хочуть вирішити FQDN, щоб щось (неважливо, за якою адресою) працювати.
Булат М.

12

Переглянута відповідь:

Сам хост не обробляє фактичну FQDN. Цим займається DNS . FQDN (повністю кваліфіковане ім'я домену) обробляється DNS, перекладаючи імена в IP-адреси. Використовуючи /etc/hostsфайл, ви по суті змінюєте DNS-сервер. Комп'ютер /etc/hostsспочатку шукає файл, щоб побачити, чи визначено запис для імені хоста на IP-адресу. Записи /etc/hostsвиглядають так:

127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu

Ці записи не специфічні для distro. Усі ОС використовують для цих рядків однаковий формат. Просто місце розташування hostsфайлу змінюється. Linux, як правило, він знаходиться в /etc/папці, де в Windows він зазвичай знаходиться в C:\Windows\System32\drivers\etc\папці.

Виконуючи цю лінію вгору, ви можете бачити, що я призначаю обидва terrance-ubuntu.local, і це мій FQDN сам переосмислювати DNS, щоб додатки знали, що не залишати мій комп'ютер, і terrance-ubuntu, що це ім'я хоста, знову, щоб додатки знали, що не залишати мій комп'ютер або 127.0.0.1 ( localhost ). Призначення імені хоста моєї системи 127.0.1.1не впливає на решту комп’ютерів, які знаходять хоста в мережі. Якщо DNS працює належним чином, вони побачать моє ім'я хоста як 10.0.0.100. Причиною використання 127.0.1.1є те, що мої програми швидше знаходять свою систему, оскільки вона буде знати, що моя система не знаходиться десь у моїй мережі. Моє фактичне ім'я хоста з .localмоїм FQDN,.local насправді мій Домен, який я налаштовую через свій маршрутизатор, який також є іншим сервером DNS в моїй мережі.

Тепер скажімо, що служби DNS в локальній мережі не призначають імена хостів або FQDN для IP-адрес, але все ж ви знаєте, що таке IP-адреса хоста в локальній мережі. Потім ви призначите цей хост у своєму /etc/hostsфайлі, щоб вам не потрібно було вводити IP-адресу хоста кожного разу, коли ви хочете отримати доступ до нього. Хост може бути сервером інструментів, принтером чи якоюсь іншою мережевою системою. Додайте запис, як зазвичай, до /etc/hostsфайлу.

Наприклад, я буду використовувати свій мережевий принтер. Він має статичний IP 10.0.0.253. Я не знаю назви цього. Для цього я хочу це назвати hp_printer. Я напишу IP-адресу та ім’я хоста для цього, а потім додаю до /etc/hosts.

terrance@terrance-ubuntu:~$ ping -c 2 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.326 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.334 ms

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
ping: unknown host hp_printer

terrance@terrance-ubuntu:~$ sudo vi /etc/hosts
10.0.0.253 hp_printer.local hp_printer

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
PING hp_printer.local (10.0.0.253) 56(84) bytes of data.
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=1 ttl=255 time=0.334 ms
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=2 ttl=255 time=0.303 ms

Тепер я також можу отримати доступ до веб-сторінки для налаштування свого принтера за ім'ям, яке я вказав замість IP-адреси, яку можна було легше запам’ятати:

введіть тут опис зображення

Ваш /etc/resolv.conf файл також використовується DNS для пошуку імен хостів. Це файл конфігурації для резолюції. Він надає пошуковий домен, так що вам не доведеться постійно вказувати свій FQDN, коли ви шукаєте хоста. Він також постачає IP-адресу для DNS або сервера імен вашої локальної мережі. У searchрядку нижче localвказано ім'я, яке є моїм доменним ім'ям.

terrance@terrance-ubuntu:~$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.1
search local

Сподіваємось, це допомагає краще зрозуміти, як працюють DNS та FQDN.


чому ви позначаєте FQDN в / etc / hosts на 127.0.1.1?
Булат М.

1
@BulatM. Будь ласка, дивіться мою переглянуту відповідь.
Терранс

Ви можете пояснити різницю між ключовими словами пошуку та домену в /etc/resolv.conf? Я читаю сторінку людини з резолюції.conf, ще не дуже зрозуміла.
Булат М.

І чи можна було б включити їх обох? Чи можете ви подати у відповідь корисний дійсний випадок? Дякую.
Булат М.

1
@BulatM. Клацніть на посилання у моїй відповіді, і вони перейдуть на вас, щоб отримати більше інформації про речі. Як і en.wikipedia.org/wiki/Resolv.conf дає набагато більше інформації. Я тут, щоб допомогти, а не навчити вас. Мені не платять, тому що це все на добровільних засадах, тому, будь ласка, займіться деяким вивченням самостійно.
Терранс

4

Сторінка обговорює це (абзац, виділенийhostname(1) жирним шрифтом, підкреслений мною):

FQDN
   FQDN (повністю кваліфіковане ім'я домену) системи - це ім'яраспознаватель (3) повертає для імені хоста, наприклад, ursula.example.com .
   Зазвичай це ім'я хоста, за яким слідує доменне ім’я DNS (частина
   після першої крапки). Ви можете перевірити FQDN, використовуючи ім'я хоста --fqdn   або
   доменне ім'я з використанням dnsdomainname .

   Ви не можете змінити FQDN з ім'ям хоста або dnsdomainname .

   Рекомендований спосіб встановлення FQDN - це зробити ім'я хоста
   псевдонім для повноцінного імені за допомогою / etc / hosts, DNS або NIS.
   Наприклад, якщо ім'я хоста було "ursula", у нього може бути рядок
   / etc / hosts, який читає

          127.0.1.1 ursula.example.com ursula

   Технічно: FQDN - це ім'я getaddrinfo (3), яке повертається для хоста
   ім'я, повернене gethostname (2). Ім'я домену DNS - це частина після
   перша крапка.

   Тому це залежить від конфігурації резолютора (зазвичай в
   /etc/host.conf) як ви можете це змінити. Зазвичай файл хостів аналізується
   перед DNS або NIS, тому найчастіше змінювати FQDN в
   / тощо / хости.

І якщо ви даєте FQDN як ім'я хоста під час встановлення, він записує лише компонент кулака до /etc/hostnameта зберігає FQDN у /etc/hosts.

Тож у цьому випадку просто дозвольте інсталятору робити те, що робить.


Це (включення 127.0.1.1 ursula.example.com ursula в / etc / hosts) специфічний для Debian \ Ubuntu або його можна однаково добре застосувати до будь-якого іншого дистрибутива?
Булат М.

1
Давно про інші дистрибутиви. Ви можете зробити те ж саме в Arch та Cent OS. Питання щодо інших дистрибутивів потрібно задавати в Unix & Linux .
муру
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.