Так і ні. Ці дві речі називаються іменами хостів.
"Внутрішнє" ім'я хоста - це в основному рядок, що зберігається ядром. Це повернута hostname
командою (або gethostname()
викликом) і унікальна в системі (*) .
В основному використовується, коли програма хоче вивести якийсь ідентифікатор для системи, на якій працює. Наприклад, \h
у Bash PS1
розширюється до імені хоста. Аналогічно, журнали в стилі syslog також містять ім'я хоста у записах журналу.
(* Хоча, як коментує Стівен Кітт, простори імен можуть використовуватися для показу різних імен хостів для процесів в одній і тій же системі. Це в основному використовується для контейнерів, які намагаються діяти так, ніби вони є різними системами.)
Потім є імена DNS , які використовуються іншими системами для пошуку IP-адреси іншої. Можливо, існує більше одного імені DNS, яке вказує на ту саму IP-адресу, і тому той самий хост.
Внутрішнє ім'я хоста та DNS-імена не повинні бути однаковими. Припустимо, у когось є веб-сервер, який він вирішив зателефонувати orange
(*) з IP-адресою 192.0.2.9
. Він може обслуговувати два різних домену, і DNS буде налаштовано мати www.example.org
і www.example.com
обидва вказувати 192.0.2.9
, тоді як внутрішнє ім'я хоста системи може бути orange.example.org
або просто orange
. У цьому випадку налаштування DNS зазвичай також має зворотний пошук у 192.0.2.9
точці, що повертається до імені orange.example.org
, але нічого цього не може змусити.
(* тому що вони хочуть називати свої сервери по фруктах. Хтось може використовуватись webserver1
чи іншим, але справа в тому, що його не потрібно називати одним із фактичних доменів.)
На додаток до цього, віртуальний хостинг вимагає, щоб браузер повідомив веб-серверу назву сайту, до якого він намагався отримати доступ. Інакше сервер не знає, до якого віртуального сайту намагався зайти клієнт. HTTP має Host
заголовок для цього.
Що замучує відмінність імені DNS від внутрішнього імені хоста - це протокол mDNS
(реалізований, наприклад, демон avahi ) та інші протоколи виявлення. mDNS дає можливість хостам запитувати всі інші хости в тій самій мережі щодо інформації про імена та робити власні імена хостів, видимими на інших хостах, не встановлюючи їх явно в DNS.