Como eu altero o HOSTNAME em um servidor Ubuntu?

3

Estou tentando alterar o nome do host no meu servidor compartilhado com o Slicehost para que eu possa configurar o Postfix como um cliente nulo.

editei / etc / hosts
e após a reinicialização, o nome do host ainda está incorreto.
O que estou fazendo de errado?

username@mail Fri Jul 01 13:01:32 ~   
$ sudo cat /etc/hostname  
mail.domain1.com  

username@mail Fri Jul 01 13:01:45 ~   
$ cat /etc/hosts  
127.0.0.1     localhost localhost.localdomain  
208.78.100.198  mail.domain1.com   

username@mail Fri Jul 01 13:02:13 ~   
$ hostname -f  
pop.where.secureserver.net  

Eu também pretendo adicionar outro domínio a este servidor, como configuro isso corretamente.

    
por BryanWheelock 01.07.2011 / 15:11

1 resposta

1

Tente definir a segunda linha nos hosts para 208.78.100.198 mail.domain1.com mail . Além disso, a reinicialização não é necessária: o FQDN não é armazenado em lugar algum, é visualizado imediatamente.

Eu acredito que o FQDN é encontrado fazendo uma consulta DNS no endereço IP do servidor e, em seguida, obtendo a primeira resposta, e é por isso que isso funciona. Deve ser possível definir o FQDN sem modificar hosts usando apenas DNS (ou NIS ou LDAP, ou onde mais nsswitch.conf procura por hosts), mas se estiver no arquivo de hosts, não há necessidade de tráfego de rede que pode expirar ou caso contrário, causar problemas em uma emergência.

Mais informações Aqui está tudo o que acontece (isso é apenas Linux, outros sistemas operacionais podem e vão fazer as coisas de forma um pouco diferente):

hostname usa a função gethostname(2) especificada em unistd.h para obter o nome do host. Essa função é implementada como uma chamada para uname(2) , em que o campo nodename da estrutura é extraído e retornado. Isso terá sido definido anteriormente no processo de inicialização com a chamada sethostname(2) correspondente, pois o kernel não tem outra maneira de saber o nome do host. No seu caso, será mail . (By the way, isso é o que você deve ter em /etc/hostname ).

Isso é resolvido usando o resolvedor de sistema padrão, que será getaddrinfo(3) ou gethostbyname(3) dependendo da safra dos utilitários do seu sistema. O campo h_name , definido como "nome oficial do host", é retornado. Acredito que isso corresponda ao primeiro nome listado em um arquivo hosts.

Quanto à sua pergunta de vários domínios, hostname não é capaz de lidar adequadamente com vários nomes. Cada interface (mesmo virtual) pode ter seu próprio IP e, às vezes, até mesmo várias interfaces físicas podem compartilhar um IP.

Você deve garantir que cada IP anexado ao seu host seja resolvido por meio de pesquisas de IP reverso com o nome apropriado e configure seu servidor de correio corretamente.

    
por 01.07.2011 / 16:05