Como uma máquina determina seu nome de host?

0

Abaixo está a saída do comando hostname .

bash-3.2$ hostname
server1

Como o comando hostname determina o nome do host como server1 ? Eu acho que ele verifica com o servidor DNS como isso é algo que o DNS deve fazer .. ou ele obtém essas informações do arquivo /etc/hosts/ ou algum outro arquivo local?

bash-3.2$ cat /etc/hosts
#
# Internet host table
#
127.0.0.1       localhost
123.123.9.133   server1       loghost
123.123.9.134      load-balancer.tsg.ge.com load-balancer
bash-3.2$ uname
SunOS
    
por Kent Pawar 30.08.2013 / 10:10

1 resposta

2

Primeiro, a maneira de resolver nomes é configurada normalmente em /etc/nsswitch.conf. Você terá uma linha como:

hosts: files dns

Isso significa que ele primeiro lerá o arquivo / etc / hosts e, se não resolver, perguntará ao DNS.

Agora, conforme indicado em man hostname , o nome de uma máquina é configurado no sistema e consultado com a chamada de sistema gethostname() . Isso é o mesmo com uname , que dá nome do kernel sem argumento e nome do nó com uname -n , que provavelmente obtém suas informações de gethostname() também.

Portanto, a resposta a este comando não tem nada a ver com o DNS nem com o / etc / hosts, diferente do configurado no momento da inicialização pelo kernel, mas isso depende do sabor da distribuição / UNIX que você está usando. .

    
por 30.08.2013 / 11:14