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.