Como configurar o hostname no Linux com hostnamectl

Há mais de uma forma para se configurar o hostname em uma máquina no GNU/Linux. E há mais de um tipo de hostname para ser configurado.
Neste post, vou demonstrar o uso do comando hostnamectl e explicar um pouco mais sobre o seu funcionamento no GNU/Linux (independente da distro que você estiver usando).
Captura de tela do comando hostnamectl
Sinta-se à vontade para pular a parte teórica, se você estiver interessado apenas em “resolver o seu problema” — neste caso, sugiro guardar este site nos favoritos, para ler nossos artigos com mais calma depois. 😉

Classes de hostname

Há 3 classes de hostnames no Linux: static (estático), pretty (bonito) e transient (transitório).
Vamos entender melhor cada uma destas classes:

  1. static — O nome de host estático é o, já conhecido, hostname. É, geralmente, escolhido pelo usuário durante a instalação do sistema, quando o aplicativo instalador pergunta pelo “nome” que você deseja dar ao seu computador.
    O valor do nome de host estático fica armazenado em /etc/hostname.

    O maior problema com os nomes estáticos é que, por serem fixos, não vão responder a mudanças nos endereços IP — pelo menos não sem intervenção manual.

  2. transient — O transient hostname é um nome de host dinâmico, mantido pelo kernel do sistema. Ele é inicializado pelo static hostname, cujo valor padrão é localhost.
    O transient hostname pode ser alterado via DHCP ou mDNS durante a execução do sistema.

    O nome de host transitório é usado temporariamente em função da configuração de rede — e é, geralmente, revertido para static hostname, caso a conexão caia, sendo temporariamente gravado no kernel hostname. Exemplo: “dhcp-47-11”.

  3. pretty — O pretty hostname é uma nomenclatura baseada em UTF-8. Ela existe para constituir um nome de host para ser exibido ao usuário.

    O pretty hostname é uma nomenclatura de “alto nível” e não é usada pelo sistema internamente. Tem uma função cosmética e tem maior liberdade para a sua composição.
    É possível usar quase todos os caracteres alfanuméricos e especiais nele:
    “Just’n Case”, “jU5T_1N_c4s3” etc.

    As informações do pretty hostname, seu chassis type o nome de seu ícone, são armazenados no arquivo /etc/machine-info.
    O exemplo, abaixo, mostra como verificar o pretty hostname no seu sistema:

    cat /etc/machine-info
    PRETTY_HOSTNAME=ultra

O nome do host pode ser formado por uma string de até 64 caracteres. Alguns administradores de sistemas recomendam que ambos, static e transient, estejam de acordo com o FQDN (Fully-Qualified Domain Name).
Além disto, os nomes static e transient devem se limitar às letras minúsculas, com caracteres de 7 bit ASCII — sem espaçamentos, sem pontos.
Como as especificações antigas não permitiam o uso de sublinha (_), por questão de compatibilidade, evite o uso deste caractere.

Como usar o comando hostnamectl

Este texto é baseado na documentação oficial do utilitário hostnamectl e do Red Hat Linux e testado em uma máquina Ubuntu 14.04 LTS e num servidor Trisquel Linux 7 Belenos.
Para verificar o seu hostname atual, use o comando “puro”:

hostnamectl
Static hostname: infinity
         Icon name: computer
           Chassis: laptop
           Boot ID: 4500399118049a1699a169fd718a634d
  Operating System: Trisquel GNU/Linux Belenos (7.0)
            Kernel: Linux 3.16.0-31-generic
      Architecture: i686

Para alterar o hostname, use a opção set-hostname:

sudo hostnamectl set-hostname UltraBook«Samsung»
hostnamectl

Note, abaixo, as diferenças entre os hostnames static e o pretty:

   Static hostname: ultrabooksamsung
   Pretty hostname: UltraBook«Samsung»

O comportamento padrão da opção set-hostname é alterar todas as 3 classes de nomes de host (static, transient e pretty). E, como você pode ver, no exemplo anterior, o sistema readequa o nome pretty (“bonitinho”) para a classe static, retirando os caracteres especiais e uniformizando as caixas das letras — o que garante que os nomes de hosts static e pretty estejam sempre “razoavelmente” co-relacionados.
Se quiser, você pode alterar apenas uma das classes. Veja como alterar a visibilidade “bonitinha”:

sudo hostnamectl set-hostname --pretty "Meu ultra novo notebook Core i9"
hostnamectl 
   Static hostname: ultrabooksamsung
   Pretty hostname: Meu ultra novo notebook Core i9
         Icon name: computer-laptop
           Chassis: laptop
           Boot ID: 48e85c3fe4864ad9a169e8ecd98f5c65
  Operating System: Ubuntu 14.04.2 LTS
            Kernel: Linux 3.13.0-51-generic
      Architecture: x86_64

Quando a sua máquina for vista na rede, seu ícone conterá a descrição pretty.
Você vai precisar reiniciar a sua sessão no Linux, para ver todos estes valores alterados.
Há como alterar o hostname da sua máquina através da edição de um dos arquivos de configuração do sistema. Saiba mais aqui.

Referências

Como atribuir nomes aos hosts na rede.
Página do manual do comando hostnamectl: http://manpages.ubuntu.com/manpages/utopic/man1/hostnamectl.1.html. Você pode obter estas mesmas informações executando o comando man hostnamectl.
Página do manual do Red Hat: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/ch-Configure_Host_Names.html#sec_Understanding_Host_Names.
Wikipedia: http://en.wikipedia.org/wiki/Hostname.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *