Linux / Comando hostnamectl: consultar e mudar o nome da máquina
hostnamectl consulta o nome do computador e informações do sistema, como distribuição, kernel e arquitetura, em ambientes Linux com o serviço de nomes do systemd disponível. Também permite mudar o hostname, mas essa alteração local não atualiza automaticamente os registros de DNS nem as entradas de /etc/hosts.
Hostname é o nome atribuído à máquina. DNS, o sistema de nomes de domínio, relaciona nomes a informações como endereços IP; essa configuração é distinta do nome local. Antes de renomear um servidor, confira qual máquina está acessando e quais serviços dependem do nome atual.
Entender os três tipos de nome
- Estático: nome definido pelo administrador, armazenado em /etc/hostname e normalmente usado nas inicializações seguintes.
- Transitório: nome dinâmico do sistema, que pode vir da configuração da rede. Um nome estático válido tem prioridade; o nome transitório não é uma segunda identidade independente que sempre prevalece.
- Pretty: nome de apresentação, que pode conter espaços e caracteres especiais. Não deve ser confundido com um nome adequado para resolução na rede.
As consultas podem retornar valores diferentes ou um nome estático ou pretty não configurado. Por isso, anote cada tipo separadamente se precisar restaurar o estado anterior. A documentação do serviço systemd-hostnamed e de suas propriedades explica a relação entre os valores persistentes e o nome efetivo do kernel.
Sintaxe e requisitos
hostnamectl [opções] [comando] [argumento]
Os colchetes descrevem a sintaxe e não devem ser digitados. Os exemplos abaixo operam no sistema local onde o terminal está aberto, inclusive quando você chegou a ele por SSH. Consulte hostnamectl --version, hostnamectl --help e man hostnamectl para conferir a versão e as opções disponíveis.
A consulta local depende da comunicação com o serviço systemd-hostnamed pelo barramento de mensagens D-Bus. Ter somente o executável instalado não garante que o serviço esteja acessível. Contêineres mínimos e ambientes sem esses componentes podem não oferecer a operação. Uma mensagem sobre falha de conexão ao barramento não é resolvida simplesmente acrescentando sudo.
O manual atual de hostnamectl usa hostname [NAME], forma introduzida no systemd 249. Os exemplos deste guia preservam set-hostname, forma de compatibilidade ainda presente no código oficial de hostnamectl, que a marca como obsoleta. Confira a ajuda da versão instalada antes de escolher uma forma.
Consultar o nome e as informações atuais
hostnamectl status
Status é a ação padrão quando nenhum comando é fornecido. A apresentação mostra o nome e os dados disponíveis do sistema; a lista e os rótulos exatos variam conforme a versão e o ambiente. Distinga o nome estático do transitório e confira os campos de sistema operacional, kernel e arquitetura, quando apresentados.
Para obter apenas o nome estático, sem analisar a tabela de status:
hostnamectl --static
Sem um comando de alteração e sem saída JSON, essa opção consulta somente o nome selecionado. Consulte também hostnamectl --transient e hostnamectl --pretty, uma consulta por vez, e guarde os valores anteriores. Não presuma que os três sejam iguais.
Mudar o hostname e verificar o resultado
Faça a alteração somente na máquina que administra. Confira antes dependências em DNS, certificados, monitoramento, aplicações e /etc/hosts. Tenha os valores anteriores e o acesso necessário para restaurá-los. O exemplo usa web01.example.test; o domínio .test é reservado para testes no RFC 2606 e não representa um nome público pronto para uso.
- Consulte e registre os três tipos de nome descritos acima.
- Escolha um nome adequado à configuração do ambiente. Nomes estáticos e transitórios têm limite de 64 caracteres no Linux e usam a forma de nomes de domínio; não copie um nome pretty com espaços para essa finalidade. A documentação de /etc/hostname recomenda preferir um único rótulo, sem pontos. O nome completo deste exemplo é uma alternativa admitida pela interface, não uma exigência.
- Se a versão local aceitar set-hostname, execute o exemplo substituindo o nome pelo escolhido:
sudo hostnamectl set-hostname web01.example.test
Sudo solicita a autorização administrativa conforme a política local. No comando acima não há seleção de tipo: a operação pode afetar o nome estático, o transitório e o pretty. Não suponha que o pretty anterior será preservado; a implementação pode remover esse valor quando ele seria apenas uma repetição do nome estático. Para alterar apenas o estático, selecione-o explicitamente, por exemplo sudo hostnamectl --static set-hostname web01.
Em versões com a forma atual hostname, sudo hostnamectl hostname web01.example.test é a alternativa correspondente. Escolha uma forma compatível com sua versão, não execute as duas como etapas consecutivas.
- Confira o status de saída imediatamente depois da alteração, por exemplo com
echo $?no Bash. Um status 0 indica sucesso; mensagens de erro e valores diferentes de zero precisam ser investigados. A ausência de texto, por si só, não confirma o resultado. - Consulte novamente o nome estático:
hostnamectl --static
Se o exemplo foi aplicado com sucesso nesse sistema, o nome estático esperado é:
web01.example.test
Essa linha é um resultado esperado, não uma saída observada no ambiente de verificação deste guia. Execute também hostnamectl status e confira separadamente os tipos transitório e pretty, especialmente se eles tinham valores diferentes antes da mudança.
- Verifique as consultas de nome necessárias ao serviço e a correspondência dos certificados e das configurações da aplicação. Um nome correto em hostnamectl não demonstra que outro computador consiga resolvê-lo. Atualizações de DNS e de /etc/hosts, quando necessárias, são tarefas separadas e devem seguir a configuração do seu ambiente.
Opções e formatos principais
| Opção ou formato | Uso |
|---|---|
status |
Mostra o nome e as informações disponíveis do sistema. |
--static |
Seleciona o nome estático para consulta ou alteração. |
--transient |
Seleciona o nome transitório, sujeito à prioridade do nome estático válido. |
set-hostname nome |
Forma de compatibilidade para mudar o nome; a forma atual documentada é hostname nome. |
--pretty |
Seleciona o nome de apresentação, que admite espaços e caracteres especiais. |
Sem uma alteração solicitada, cada seletor pode consultar o tipo correspondente. Ao alterar, um ou mais seletores delimitam os tipos atualizados; não selecione mais de um tipo para uma consulta simples. No status em JSON, os seletores não reduzem o objeto àquele campo. Confira esses detalhes no manual da versão utilizada.
Restaurar os nomes anteriores e investigar falhas
Para restaurar somente um nome estático anterior conhecido, use sudo hostnamectl --static set-hostname 'nome-estatico-anterior', substituindo o texto pelo valor anotado. Se o pretty também mudou, restaure-o separadamente com sudo hostnamectl --pretty set-hostname 'Nome de apresentação anterior'. Para um transitório anterior, a seleção correspondente é sudo hostnamectl --transient set-hostname 'nome-transitorio-anterior', mas um estático válido continuará tendo prioridade.
Não substitua esses exemplos por textos genéricos sem conferir os valores reais. Caso o estático ou o pretty estivesse originalmente sem configuração, restaurar esse estado requer limpar o tipo correspondente, e não inventar um nome. No serviço systemd-hostnamed, uma cadeia vazia remove a configuração estática; confirme o estado anterior e a sintaxe da versão local antes dessa ação. Consulte novamente cada tipo e o status após a restauração. Restaurar somente o nome não desfaz alterações separadas que tenham sido feitas no DNS, nos certificados ou nas aplicações.
Se a mudança falhar, leia a mensagem completa. Falta de autorização, nome inválido, arquivo de configuração protegido ou barramento indisponível são problemas diferentes. Não tente contornar políticas de autorização nem tratar um sistema sem o serviço necessário como se fosse um erro de grafia do nome. Confira também se algum mecanismo de provisionamento está reaplicando a configuração anterior.
Na verificação disponível, Bash 5.3.9 do Git para Windows, hostnamectl não foi encontrado: as consultas --version e --help retornaram 127. Os quatro blocos de comandos passaram apenas pela análise de sintaxe do Bash. Não houve execução de sudo, mudança de hostname, acesso a systemd-hostnamed ou teste de DNS em Linux; os efeitos e resultados esperados foram conferidos na documentação e no código oficiais.
Pergunta frequente
Mudar o nome com hostnamectl também muda o DNS?
Não automaticamente. O comando altera a identificação local da máquina. Registros de DNS, entradas em /etc/hosts e dependências de aplicações precisam ser conferidos separadamente; o resultado correto da consulta --static não prova que o novo nome seja resolvido por outros sistemas.




