Como alterar o nome de domínio do Debian Linux

1

Eu nunca consegui entender como alterar o nome do host e o nome de domínio do Linux, e agora ele volta e me morde de novo - meu nome de domínio do Linux está em branco ( domainname(none) ) e não consigo alterá-lo de volta:

$ hostname
coral

$ hostname -f
coral

$ hostname -d

$ hostname -d | wc 
      0       0       0

$ domainname 
(none)

$ dnsdomainname

$ dnsdomainname | wc 
      0       0       0

$ cat /etc/hostname
coral

$ head -1 /etc/hosts 
127.0.0.1       localhost.my.domain.org localhost

$ cat /etc/resolv.conf
# Fixed resolv.conf file
domain my.domain.org
search my.domain.org
nameserver 192.168.2.102

$ time dig coral
;; ANSWER SECTION:
coral.                  0       IN      A       192.168.2.102
real    0m0.038s
user    0m0.032s
sys     0m0.004s

Eu reiniciei várias vezes e meu nome de domínio ainda está em branco agora. O acima é depois de várias reinicializações.

Adicionando mais detalhes.

  1. Usando o alias, o nome do host em /etc/hosts para o FQDN específico parece ser a resposta correta, no entanto, eu já fiz isso para ver a entrada localhost.my.domain.org acima. Não coloquei meu nome de host (coral) em /etc/hosts porque não quero que meu nome de host resolva para 127.0.0.1 , mas para IP real, que obtive do meu servidor DNS.
  2. Eu fiz um rastreio no hostname -f , mas não consigo encontrar nenhum problema no log. Eu posso colocar aqui se alguém estiver interessado.

Como conseqüência, há um atraso extenso (de rede) para iniciar e parar meu servidor sendmail.

ATUALIZAÇÃO:

Hoje, o hostname -f , hostname -d & dnsdomainname estão todos funcionando bem agora. Eu não fiz nada, exceto que eu rastreei novamente o hostname -f . Eu deveria ter rastreado um novo arquivo, mas não o fiz. Então agora está funcionando, e eu ainda não sei porque está funcionando agora e porque não funcionou antes. Além disso, mesmo quando tudo está funcionando, meu sysctl kernel.domainname ainda está relatando (none) . Isso é tão estranho e complicado.

$ uptime 
 21:33:36 up 2 days,  1:36,  5 users,  load average: 0.22, 0.43, 0.29

$ sysctl kernel.domainname
kernel.domainname = (none)

E o atraso (rede) acima para conectar-se ao meu servidor sendmail também desapareceu. Então, minha conclusão é que tudo que eu estava fazendo acima estava correto , mas de alguma forma, misticamente, demorou muito tempo para o meu Ubuntu 17.04 perceber isso.

De qualquer forma, aceitarei a resposta de JakeGould, pois ele tem algo novo em como usar sysctl e kernel.hostname .
Obrigado a todos que ajudaram!

    
por xpt 30.05.2017 / 02:13

2 respostas

0

A maneira como lide com isso é assim; assumindo que seu nome de host é covfefe . Primeiro, execute este comando:

sudo hostname covfefe

Em seguida, edite /etc/hostname e altere o valor para lá:

sudo nano /etc/hostname

Por fim, verifique seu nome de host com sysctl da seguinte forma:

sysctl kernel.hostname

E se o valor não for covfefe , altere-o para covfefe da seguinte forma:

sudo sysctl kernel.hostname=covfefe
    
por 31.05.2017 / 18:56
1

Para definir o nome do domínio no Debian, você pode editar /etc/hostname . Para um host hulefu no domínio somewhere.co.uk , você simplesmente define /etc/hostname para hulefu.somewhere.co.uk . Isso deve funcionar para a maioria das outras distribuições Linux também.

Agora, um hostname -d deve fornecer somewhere.co.uk como resposta.

Um pergunta semelhante foi feita em serverfault .

Atualização: Você pode adicionar um alias de domínio a /etc/hosts . Seguindo o exemplo anterior, essa seria a primeira linha de /etc/hosts : 127.0.0.1 localhost localhost.somewhere.co.uk

IMHO definindo diretamente os parâmetros do kernel deve ser o último recurso.

    
por 30.05.2017 / 06:03