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).
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:
- 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.
- 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”.
- 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.