hostname
służy do wyświetlania nazwy DNS systemu oraz do wyświetlania lub ustawiania nazwy hosta lub nazwy domeny NIS.
Czy system komputerowy (Linux) ma tylko jedną nazwę hosta?
W hostingu wirtualnym kilka nazw hostów można rozpoznać w różnych katalogach głównych na serwerze WWW. Jeśli system komputerowy (Linux) może mieć tylko jedną nazwę hosta, w jaki sposób możliwy jest wirtualny hosting?
Dzięki.
hostname
kiedykolwiek używane do tłumaczenia nazwy hosta na adres IP? (2) A oznacza adres IPv4, AAAA IPv6. Co to jest AAA?avahi
zależą od nazwy hosta komputera. W takim przypadkuhostname.local
zostanie rozwiązany na lokalny adres IP urządzenia. Widzę, że ktoś napisał odpowiedź, która jest rozwinięciem mojego pierwszego komentarza ... zbyt jednocześnie dla powiadomień przeglądarki.Odpowiedzi:
Tak i nie. Są dwie różne rzeczy zwane nazwami hostów.
„Wewnętrzna” nazwa hosta jest w zasadzie ciągiem przechowywanym przez jądro. Jest to ten zwracany przez
hostname
polecenie (lubgethostname()
wywołanie) i jest unikalny w systemie (*) .Jest to najczęściej używane, gdy program chce wypisać jakiś identyfikator systemu, na którym działa. Np.
\h
W BashPS1
rozwija się do nazwy hosta. Podobnie, pliki dziennika w stylu syslog zawierają również nazwę hosta we wpisach dziennika.(* Jak komentuje Stephen Kitt, przestrzeni nazw można używać do wyświetlania różnych nazw hostów dla procesów w tym samym systemie. Jest to najczęściej używane w przypadku kontenerów, które próbują zachowywać się jak odrębne systemy.)
Są też nazwy DNSSą które są używane przez inne systemy do wyszukiwania adresu IP innego. Może istnieć więcej niż jedna nazwa DNS, która wskazuje ten sam adres IP, a więc ten sam host.
Wewnętrzna nazwa hosta i nazwy DNS nie muszą być takie same. Załóżmy, że ktoś ma serwer sieciowy, pod który postanowił zadzwonić
orange
(*) , z adresem IP192.0.2.9
. Może to służyć dwie różne domeny i DNS będzie skonfigurować miećwww.example.org
iwww.example.com
zarówno punkt192.0.2.9
, natomiast wewnętrzna hosta systemu może byćorange.example.org
albo po prostuorange
. W tym przypadku, konfiguracja DNS zazwyczaj też wyszukiwania wstecznego na192.0.2.9
punkcie plecami do nazwyorange.example.org
, ale nie ma nic do tego siły.(* ponieważ lubią nazywać swoje serwery po owocach. Ktoś może ich użyć
webserver1
, ale chodzi o to, że nie trzeba go nazywać po jednej z rzeczywistych domen).Ponadto wirtualny hosting wymaga, aby przeglądarka poinformowała serwer WWW o nazwie witryny, do której próbował uzyskać dostęp. W przeciwnym razie serwer nie wiedziałby, do której wirtualnej witryny próbował dotrzeć klient. HTTP ma do tego
Host
nagłówek .To, co zamazuje rozróżnienie między nazwą DNS a wewnętrzną nazwą hosta, to protokół mDNS (implementowany np. Przez demona avahi ) i inne protokoły wykrywania. mDNS umożliwia hostom wysyłanie zapytań do wszystkich innych hostów w tej samej sieci w celu uzyskania informacji o nazwach oraz wyświetlanie ich własnych nazw na innych hostach bez jawnego konfigurowania ich w DNS.
źródło
hostname
kiedykolwiek używane do tłumaczenia nazwy hosta na adres IP?hostname
poleceń, prawda? Czy router działa jak DNS, przetwarzając dane wyjściowehostname
na prywatne adresy IP w sieci?mDNS
. Na lepsze lub gorsze pozwala właścicielom systemów wybrać własne nazwy hostów, dostępne dla innych systemów w sieci lokalnej, bez konieczności rejestracji na serwerze DNS.Nie.
[Całkowicie zignoruję to, że ktokolwiek może nadać Twojemu hostowi dowolną nazwę, podając rekord DNS wskazujący na jego adres, lub że możesz mieć dla niego więcej niż jeden alias
/etc/hosts
lub rozważania filozoficzne na temat tego, jaką nazwę naprawdę jest ]W systemie linux nazwa hosta to po prostu zasób na proces („przestrzeń nazw UTS”), który jest domyślnie dziedziczony przez jego elementy potomne, ale można go odłączyć za pomocą flagi
unshare(2)
lubclone(2)
przy użyciu tejCLONE_NEWUTS
flagi. Powinieneś zajrzeć donamespaces(7)
podręcznika.Podobnie jak pid, numery portów, punkty montowania itp. Nazwa hosta nie jest już identyfikatorem globalnym i może być zwirtualizowana tak samo jak przestrzeń adresowa (pamięć wirtualna) lub tablica deskryptorów plików procesu.
Hosting wirtualny jest czymś zupełnie innym i zwykle odbywa się to poprzez skonfigurowanie wieloznacznego rekordu DNS (np.
*.foo.com
=>13.13.13.13
) Z serwerem WWW działającym13.13.13.13
i obsługującym różne katalogi / zasoby w oparciu o wartośćHost:
nagłówka http [1] (który jest wysoce konfigurowalny ; większość serwerów internetowych może obsługiwać różne zasoby w oparciu o dowolny nagłówek http, nie tylkoHost:
). W tym wszystkim system operacyjny systemu, na którym działa serwer WWW, nie odgrywa żadnej roli.[1] lub na wartość wskazania nazwy serwera w przypadku https, co pozwala temu samemu serwerowi używać różnych certyfikatów dla różnych hostów wirtualnych.
źródło
Zwykle ustawiasz pojedynczą nazwę hosta w / etc / hostname. I ustawiasz wiele nazw domen w / etc / hosts.
Przestrzenie nazw UTS pozwalają, aby pojedynczy system miał różne nazwy hostów i domen dla różnych procesów. Aby uzyskać więcej informacji: https://en.wikipedia.org/wiki/Linux_namespaces . Zatem absolutnie możliwe jest posiadanie wielu nazw hostów i nazw domen dla tego samego systemu. Na przykład kontener dokujący w tym samym hoście ma inną nazwę hosta niż system hosta.
źródło