Resposta revisada:
O host em si não manipula o FQDN real. Isso é tratado pelo DNS . O FQDN (nome de domínio totalmente qualificado) é tratado pelo DNS, convertendo nomes em endereços IP. Usando o /etc/hosts
arquivo, você está essencialmente substituindo o servidor DNS. O computador procura /etc/hosts
primeiro o arquivo para ver se uma entrada está definida para um nome de host para o endereço IP. As entradas na /etc/hosts
aparência são as seguintes:
127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu
Essas entradas não são específicas da distribuição. Todos os sistemas operacionais usam o mesmo formato para essas linhas. Apenas a localização do hosts
arquivo é alterada. Linux, normalmente está localizado na /etc/
pasta, enquanto no Windows está localizado na C:\Windows\System32\drivers\etc\
pasta.
Quebrando essa linha, você pode ver que estou atribuindo ambos terrance-ubuntu.local
, que é meu próprio FQDN para substituir o DNS, para que os aplicativos saibam não sair do meu computador e terrance-ubuntu
, qual é o nome do host, novamente, para que os aplicativos saibam que não devem sair do meu computador ou 127.0.0.1 ( host local ). Atribuir meu nome de host do meu sistema 127.0.1.1
não afeta o restante dos computadores que encontram meu host na rede. Se o DNS estiver funcionando corretamente, eles verão meu nome de host como 10.0.0.100
. O motivo do uso 127.0.1.1
é que meus aplicativos encontrem meu sistema mais rapidamente, pois saberão que meu sistema não está em outro lugar da minha rede. Meu nome de host atual, .local
sendo meu FQDN, o.local
é realmente o meu domínio que eu configuro através do meu roteador, que também é outro servidor DNS na minha rede.
Agora, digamos que os serviços DNS na rede local não estejam atribuindo nomes de host ou FQDNs a endereços IP, mas você sabe qual é o endereço IP do host na rede local. Você designaria esse host em seu /etc/hosts
arquivo para não precisar digitar o endereço IP do host sempre que quiser acessá-lo. O host pode ser um servidor de ferramentas, impressora ou outro sistema conectado à rede. Adicione a entrada como faria normalmente ao /etc/hosts
arquivo.
Vou usar minha impressora conectada à rede, por exemplo. Possui um IP estático de 10.0.0.253. Eu não sei o nome disso, no entanto. Para isso, eu quero chamá-lo hp_printer
. Vou executar ping no IP e no nome do host, e depois adiciono a /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
Agora, também posso acessar a página da Web da configuração da impressora com o nome que eu dei, em vez do endereço IP, que seria mais fácil de lembrar:
Seu arquivo /etc/resolv.conf também é usado pelo DNS para ajudar a encontrar nomes de host. É o arquivo de configuração para o resolvedor. Ele fornece o domínio de pesquisa para que você não precise especificar o seu FQDN o tempo todo quando estiver procurando por um host. Ele também fornece o endereço IP para o DNS ou servidor de nomes da sua rede local. A search
linha abaixo mostra o nome local
que é o meu nome de domínio.
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
Espero que isso ajude a entender melhor como o DNS e os FQDNs funcionam.