Poprawiona odpowiedź:
Sam host nie obsługuje faktycznej nazwy FQDN. Obsługuje to DNS . FQDN (w pełni kwalifikowana nazwa domeny) jest obsługiwany przez DNS tłumaczący nazwy na adresy IP. Korzystając z /etc/hosts
pliku, zasadniczo zastępujesz serwer DNS. Komputer /etc/hosts
najpierw sprawdza plik, aby sprawdzić, czy zdefiniowano pozycję dla nazwy hosta na adres IP. Wpisy /etc/hosts
wygląda następująco:
127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu
Te wpisy nie są specyficzne dla dystrybucji. Wszystkie systemy operacyjne używają tego samego formatu dla tych linii. hosts
Zmienia się tylko lokalizacja pliku. Linux zazwyczaj znajduje się w /etc/
folderze, natomiast w systemie Windows zwykle znajduje się w C:\Windows\System32\drivers\etc\
folderze.
Po rozbiciu tej linii widać, że przypisuję oba terrance-ubuntu.local
, które są moją nazwą FQDN w celu zastąpienia DNS, aby aplikacje wiedziały, że nie powinny opuszczać mojego komputera, i terrance-ubuntu
, która jest nazwą hosta, ponownie, aby aplikacje wiedziały, aby nie opuszczać mojego komputera lub 127.0.0.1 ( localhost ). Przypisanie mojej nazwy hosta do mojego systemu 127.0.1.1
nie ma wpływu na to, że reszta komputerów znajdzie mojego hosta w sieci. Jeśli DNS działa poprawnie, będą widzieć moją nazwę hosta jako 10.0.0.100
. Powodem użycia 127.0.1.1
jest to, że moje aplikacje szybciej odnajdują mój system, ponieważ będzie wiedział, że mojego systemu nie ma gdzie indziej w mojej sieci. Moja faktyczna .local
nazwa hosta, ponieważ jest to moja nazwa FQDN,.local
jest właściwie moją domeną, którą konfiguruję za pomocą routera, który jest również innym serwerem DNS w mojej sieci.
Załóżmy teraz, że usługi DNS w sieci lokalnej nie przypisują nazw hostów ani nazw FQDN do adresów IP, ale wiesz, jaki jest adres IP hosta w sieci lokalnej. Następnie przypisujesz tego hosta do /etc/hosts
pliku, aby nie trzeba było wpisywać adresu IP hosta za każdym razem, gdy chcesz uzyskać do niego dostęp. Host może być serwerem narzędzi, drukarką lub innym systemem podłączonym do sieci. Dodaj wpis, tak jak normalnie, do /etc/hosts
pliku.
Mam zamiar użyć na przykład mojej drukarki podłączonej do sieci. Ma statyczny adres IP 10.0.0.253. Nie znam jednak jego nazwy. W tym celu chcę to nazwać hp_printer
. Wyśledzę adres IP i nazwę hosta, a następnie dodam do /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
Teraz mogę również uzyskać dostęp do strony konfiguracji drukarki pod nazwą, którą mu podałem, zamiast adresu IP, który łatwiej zapamiętać:
Twój plik /etc/resolv.conf jest również używany przez DNS do pomocy w znalezieniu nazw hostów. Jest to plik konfiguracyjny resolvera. Udostępnia domenę wyszukiwania, dzięki czemu nie musisz podawać nazwy FQDN przez cały czas, gdy szukasz hosta. Dostarcza także adres IP dla DNS lub serwera nazw twojej sieci lokalnej. search
Linia poniżej pokazuje nazwę local
, która jest moja domena.
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
Mamy nadzieję, że pomoże to lepiej zrozumieć, jak działają DNS i FQDN.