Deve-se usar o FQDN em / etc / hostname em vez de hostname?

10

Como eu li na página do manual, é recomendável colocar o nome do host (sem nome de domínio) /etc/hostname. Por exemplo, host em vez de host.domainsub.domaintld. Mas, como eu sei, alguns softwares dependem FQDNda entrada /etc/hostname.

O que se deve especificar nas /etc/hostname máquinas Debian / Ubuntu?

Se não for o FQDN, onde o FQDN deve ser especificado?

Eu sei, a pergunta é um pouco antiga, mas não encontrou resposta clara. Algumas pessoas dizem nome de host, outras - FQDN. Obrigado.

Bulat M.
fonte
1
Onde você encontra pessoas dizendo que coloca o FQDN no arquivo / etc / hostname? Esse arquivo é apenas para o nome do host do sistema.
Terrance
Ao ler o material sobre ele na internet, conheci em algum lugar. E onde se deve especificar seu FQDN?
Bulat M.
@Terrance, na verdade, eu quero obter respostas de pessoas experientes no campo para que elas mostrem como fazer isso "certo" desde o início. Escreva como resposta. E o que fazer em distribuições que não possuem / etc / hostname?
Bulat M.

Respostas:

6

No arquivo / etc / hostname, você usa apenas o nome do host. O FQDN que você pode definir em: / etc / hosts que podem se parecer com:

127.0.1.1        thishost.mydomain.org    thishost

De acordo com o manual do arquivo hosts.

http://man7.org/linux/man-pages/man5/hosts.5.html

Adonista
fonte
1
CORRECÇÃO: Obrigado, no entanto, seria conhecer os prós e contras de especificar / não especificar o FQDN em / etc / hostname. Eu sei da sua solução: é um esboço para programas que desejam resolver o FQDN para algo (não importa para qual endereço) funcionar.
quer
11

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/hostsarquivo, você está essencialmente substituindo o servidor DNS. O computador procura /etc/hostsprimeiro o arquivo para ver se uma entrada está definida para um nome de host para o endereço IP. As entradas na /etc/hostsaparê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 hostsarquivo é 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.1nã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, .localsendo 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/hostsarquivo 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/hostsarquivo.

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:

insira a descrição da imagem aqui

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 searchlinha abaixo mostra o nome localque é 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.

Terrance
fonte
por que você mapeia o FQDN em / etc / hosts para 127.0.1.1?
precisa
1
@BulatM. Por favor, veja minha resposta revisada.
Terrance 23/12
você poderia explicar a diferença entre palavras-chave de pesquisa e domínio no /etc/resolv.conf? Estou lendo a página de manual do resolv.conf, ainda não muito claro.
precisa
E poderia incluir os dois? Você poderia apresentar um caso válido e útil em resposta? Obrigado.
Bulat M.
1
@BulatM. Clique nos links da minha resposta e eles levam você a mais informações sobre as coisas. Como en.wikipedia.org/wiki/Resolv.conf fornece muito mais informações. Estou aqui para ajudar, não para ensinar você. Eu não sou pago, pois tudo isso é voluntário, então faça um estudo seu.
Terrance
4

A página de manualhostname(1) discute isso (o parágrafo em negrito é enfatizado por mim):

THE FQDN
   O FQDN (nome de domínio totalmente qualificado) do sistema é o nome que
   o resolvedor (3) retorna para o nome do host, como ursula.example.com .
   Geralmente é o nome do host seguido pelo nome de domínio DNS (a parte
   após o primeiro ponto). Você pode verificar o FQDN usando o nome do host --fqdn   ou
   o nome de domínio usando dnsdomainname .

   Você não pode alterar o FQDN com nome do host ou dnsdomainname .

   O método recomendado para definir o FQDN é tornar o nome do host
   um alias para o nome completo usando / etc / hosts, DNS ou NIS.
   Por exemplo, se o nome do host for "ursula", pode haver uma linha em
   / etc / hosts que lê

          127.0.1.1 ursula.example.com ursula

   Tecnicamente: O FQDN é o nome que getaddrinfo (3) retorna para o host
   nome retornado por gethostname (2). O nome de domínio DNS é a parte após
   o primeiro ponto.

   Portanto, depende da configuração do resolvedor (geralmente em
   /etc/host.conf) como você pode alterá-lo. Normalmente, o arquivo hosts é analisado
   antes do DNS ou NIS, portanto, é mais comum alterar o FQDN em
   / etc / hosts.

E se você der um FQDN como o nome do host durante a instalação, ele gravará apenas o primeiro componente /etc/hostnamee manterá o FQDN /etc/hosts.

Portanto, neste caso, deixe o instalador fazer o que faz.

muru
fonte
É (inclusão da ursula 127.0.1.1 ursula.example.com em / etc / hosts) o Debian \ Ubuntu específico ou pode ser aplicado igualmente bem a qualquer outra distr?
Bulat M.
1
Não sei sobre outras distros. Você pode fazer o mesmo no Arch e Cent OS, no entanto. Perguntas sobre outras distribuições devem ser feitas no Unix e Linux .
Muru