Ja und nein. Das sind zwei verschiedene Dinge, die Hostnamen genannt werden.
Der "interne" Hostname ist im Grunde eine Zeichenfolge, die vom Kernel verwaltet wird. Dies ist der hostname
Befehl (oder der gethostname()
Aufruf), der innerhalb eines Systems eindeutig ist (*) .
Es wird meistens verwendet, wenn ein Programm eine Kennung für das System ausgeben möchte, auf dem es ausgeführt wird. ZB \h
in Bash's wird PS1
zum Hostnamen erweitert. In ähnlicher Weise enthalten syslog-artige Protokolldateien auch den Hostnamen in Protokolleinträgen.
(* Obwohl Stephen Kitt kommentiert, können Namespaces verwendet werden, um unterschiedliche Hostnamen für Prozesse auf demselben System anzuzeigen. Dies wird hauptsächlich für Container verwendet, die versuchen, sich wie unterschiedliche Systeme zu verhalten.)
Dann gibt es auch DNS-Namen , die von anderen Systemen verwendet werden, um die IP-Adresse eines anderen nachzuschlagen. Möglicherweise gibt es mehrere DNS-Namen, die auf dieselbe IP-Adresse und damit auf denselben Host verweisen.
Der interne Hostname und der DNS-Name müssen nicht identisch sein. Angenommen, jemand hat einen Webserver mit der IP-Adresse , den er anrufen möchte orange
(*)192.0.2.9
. Es könnten zwei verschiedene Domains bedient werden und der DNS müsste eingerichtet sein www.example.org
und www.example.com
beide zeigen auf 192.0.2.9
, während der interne Hostname des Systems orange.example.org
oder nur sein könnte orange
. In diesem Fall würde die DNS - Konfiguration in der Regel auch einen Reverse - Lookup auf 192.0.2.9
Punkt zurück auf den Namen orange.example.org
, aber es gibt nichts zu Kraft , dass.
(* weil sie ihre Server gerne nach Obst benennen. Jemand könnte es verwenden webserver1
oder so, aber der Punkt ist, dass es nicht nach einer der tatsächlichen Domänen benannt werden muss.)
Darüber hinaus erfordert das virtuelle Hosting, dass der Browser dem Webserver den Namen der Site mitteilt, auf die er zugreifen möchte. Andernfalls würde der Server nicht wissen, welche virtuelle Site der Client erreichen wollte. HTTP hat den Host
Header dafür.
Was die Unterscheidung zwischen einem DNS-Namen und dem internen Hostnamen trübt, ist das mDNS-Protokoll
(das z. B. vom Avahi-Dämon implementiert wird ) und andere Erkennungsprotokolle. Mit mDNS können Hosts alle anderen Hosts im selben Netzwerk nach Namensinformationen abfragen und ihre eigenen Hostnamen auf anderen Hosts sichtbar machen, ohne sie explizit in DNS einzurichten.