Переглянута відповідь:
Сам хост не обробляє фактичну 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.