Um nome de domínio é uma abstração para um endereço IP. Independentemente de qual computador esteja naquele IP, o nome de domínio deve apontar para lá. Então, por que associamos um nome de domínio a um computador usando /etc/{hosts,hostname} e/ou hostnamectl do systemd? Eu sou definitivamente sem noção, mas isso só parece errado para mim.
Estou configurando meu primeiro servidor em casa que será acessível publicamente, usando um DNS dinâmico para o nome de domínio, e então me deparei com essa questão de hosts/nome de host. Não sou o único a perguntar , mas essa pessoa não obteve resposta.
Em
/etc/hostname
(verman 5 hostname
) você pode e deve definir o hostname local do seu servidor. Este nome pode ser usado a partir do software em execução neste servidor. Esta é apenas uma string, que não é visível fora do servidor.Por outro lado, o arquivo
/etc/hosts
é usado para resolver nomes de computador em endereços IP. Você pode pensar nisso como um servidor DNS pobre. Antigamente, antes do desenvolvimento do Domain Name System, grandes arquivos de host eram realmente enviados aos computadores na Internet para mapear uma rede uniforme com nomes. Normalmente, não há necessidade de adicionar entradas aqui, se você tiver um servidor DNS em execução e nenhuma rede local com mais de um servidor.Para não depender de um servidor de nomes, você pode inserir seus próprios servidores e seus endereços IP em
/etc/hosts
. No entanto, você deve observar que, com mais servidores e intervalos de endereço alterados, torna-se tedioso manter esse arquivo.Os nomes DNS não são um-para-um com endereços IP, como, por exemplo, um nome de domínio pode ser usado apenas para e-mail, de modo que tenha apenas registros MX e nenhum endereço IP. Ou vários nomes podem apontar para um endereço IP, o que é comum para servidores da Web que atendem a mais de um site com nomes de domínio separados. Além disso, um único nome de domínio pode apontar para mais de um endereço IP, o que pode ser útil para balanceamento de carga.
Em muitos desses casos, pode ser útil fazer uma diferença entre o "nome do serviço" público no DNS e o nome interno que identifica o sistema e aparece, por exemplo, em logs e frequentemente no prompt de comando.
/etc/hosts
e/etc/hostname
não são tão relacionados realmente. O primeiro é um substituto para o DNS, enquanto o último é usado para armazenar o nome de host "interno" do sistema.