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

5

Como eu li na man page, é recomendado colocar o hostname (sem nome de domínio) em /etc/hostname . Por exemplo, host em vez de host.domainsub.domaintld. Mas, como eu sei, alguns softwares dependem de ter FQDN em /etc/hostname .

O que se deve especificar em /etc/hostname nas 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 uma resposta clara. Algumas pessoas dizem nome de host, algumas - FQDN. Obrigado.

    
por Bulat M. 21.12.2016 / 18:11

3 respostas

4

No arquivo / etc / hostname você usa apenas o nome do host. O FQDN que você pode definir: / etc / hosts que pode ser semelhante:

127.0.1.1        thishost.mydomain.org    thishost

De acordo com o manual do arquivo hosts.

link

    
por Adonist 21.12.2016 / 18:16
6

Resposta revisada:

O próprio host não manipula o FQDN real. Isso é tratado pelo DNS . O FQDN (nome de domínio totalmente qualificado) é manipulado pelo DNS para converter nomes em endereços IP. Usando o arquivo /etc/hosts , você está basicamente sobrescrevendo o servidor DNS. O computador olha primeiro para o arquivo /etc/hosts para ver se uma entrada está definida para um nome de host para o endereço IP. As entradas no /etc/hosts são semelhantes às seguintes:

127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu

Essas entradas não são específicas. Todos os sistemas operacionais usam o mesmo formato para essas linhas. Apenas a localização das alterações do arquivo hosts . Normalmente, o Linux está localizado na pasta /etc/ , em que no Windows ele está normalmente localizado na pasta C:\Windows\System32\drivers\etc\ .

Quebrando essa linha, você pode ver que estou atribuindo terrance-ubuntu.local , que é o meu próprio FQDN para substituir o DNS, para que os aplicativos não saiam do computador e terrance-ubuntu , que é o nome do host, que os aplicativos não saibam deixar meu computador ou 127.0.0.1 ( localhost ). Atribuir meu nome de host do meu sistema a 127.0.1.1 não tem efeito nos outros 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 para usar 127.0.1.1 é que meus aplicativos localizem meu sistema mais rapidamente, pois saberão que meu sistema não está em outro lugar da minha rede. Meu hostname real com o .local sendo meu FQDN, o .local é, na verdade, meu domínio que configuro pelo meu roteador, que também é outro servidor DNS na minha rede.

Agora, digamos que os serviços DNS na rede local não atribuam nomes de host ou FQDNs a endereços IP, mas você sabe qual é o endereço IP do host na rede local. Você então atribuiria esse host ao seu arquivo /etc/hosts , para que você não precise digitar o endereço IP do host toda vez que desejar acessá-lo. O host pode ser um servidor de ferramentas, uma impressora ou algum outro sistema conectado à rede. Adicione a entrada como você faria normalmente ao arquivo /etc/hosts .

Vou usar minha impressora conectada em rede, por exemplo. Tem um IP estático de 10.0.0.253. Eu não sei o nome dele embora. Para isso, quero chamá-lo de hp_printer . Vou fazer o ping do IP e o nome do host para ele e, em seguida, adicionarei 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 para a configuração da minha impressora com o nome que dei a ela, em vez do endereço IP, que poderia ser 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 seu FQDN o tempo todo quando estiver procurando por um host. Também fornece o endereço IP para o DNS ou servidor de nomes da sua rede local. A linha search abaixo mostra o nome local , que é o nome do meu 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.

    
por Terrance 22.12.2016 / 16:14
2

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

THE FQDN
   The  FQDN  (Fully Qualified Domain Name) of the system is the name that
   the resolver(3) returns for the host name, such as, ursula.example.com.
   It  is  usually  the hostname followed by the DNS domain name (the part
   after the first dot).  You can check the FQDN using hostname --fqdn  or
   the domain name using dnsdomainname.

   You cannot change the FQDN with hostname or dnsdomainname.

   The  recommended  method of setting the FQDN is to make the hostname be
   an alias for the fully qualified name using /etc/hosts,  DNS,  or  NIS.
   For  example,  if  the  hostname was "ursula", one might have a line in
   /etc/hosts which reads

          127.0.1.1    ursula.example.com ursula

   Technically: The FQDN is the name getaddrinfo(3) returns for  the  host
   name returned by gethostname(2).  The DNS domain name is the part after
   the first dot.

   Therefore it depends on the configuration of the resolver  (usually  in
   /etc/host.conf) how you can change it. Usually the hosts file is parsed
   before DNS or NIS,  so  it  is  most  common  to  change  the  FQDN  in
   /etc/hosts.

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

Então, neste caso, deixe o instalador fazer o que ele faz.

    
por muru 22.12.2016 / 17:07