Sim e não. Existem duas coisas distintas chamadas nomes de host.
O nome do host "interno" é basicamente uma string mantida pelo kernel. É aquele retornado pelo hostnamecomando (ou pela gethostname()chamada) e é único dentro de um sistema (*) .
É usado principalmente quando um programa deseja gerar algum identificador para o sistema em que está sendo executado. Por exemplo, \hno Bash se PS1expande para o nome do host. Da mesma forma, os arquivos de log no estilo syslog também incluem o nome do host nas entradas de log.
(* Embora, como comenta Stephen Kitt, os namespaces possam ser usados para mostrar nomes de host diferentes para processos no mesmo sistema. Isso é usado principalmente para contêineres, que tentam agir como se fossem sistemas distintos.)
Depois, há também nomes DNS que são usados por outros sistemas para procurar o endereço IP de outro. Pode haver mais de um nome DNS que aponte para o mesmo endereço IP e, portanto, o mesmo host.
O nome do host interno e os nomes DNS não precisam ser os mesmos. Suponha que alguém tenha um servidor da web que eles decidiram ligar orange(*) , com o endereço IP 192.0.2.9. Poderia servir dois domínios diferentes e o DNS seria configurado para ter www.example.orge www.example.comambos apontam para 192.0.2.9, enquanto o nome do host interno do sistema pode ser orange.example.orgou apenas orange. Nesse caso, a configuração do DNS normalmente também teria uma pesquisa inversa no 192.0.2.9ponto de volta ao nome orange.example.org, mas não há nada para forçar isso.
(* porque eles gostam de nomear seus servidores como frutas. Alguém pode usar webserver1isso, mas o ponto é que ele não precisa ser nomeado como um dos domínios reais.)
Além disso, a hospedagem virtual exige que o navegador informe ao servidor da Web o nome do site que ele tentou acessar. Caso contrário, o servidor não saberia qual site virtual o cliente tentou acessar. HTTP tem o Hostcabeçalho para isso.
O que atrapalha a distinção entre um nome DNS e o nome do host interno é o protocolo mDNS
(implementado, por exemplo, pelo daemon avahi ) e outros protocolos de descoberta. O mDNS possibilita que os hosts consultem todos os outros hosts na mesma rede em busca de informações de nome e tornem seus próprios nomes de host visíveis em outros hosts sem configurá-los explicitamente no DNS.