Atribua apelidos aos endereços IP da sua rede, editando o /etc/hosts

Com uma pequena edição no arquivo de configuração /etc/hosts, é possível atribuir um ou mais apelidos às máquinas que o cercam na rede.
Isto permite acessar máquinas remotas por nomes, poupando o trabalho de digitar números IP compridos e difíceis de memorizar.
O conteúdo típico do arquivo /etc/hosts, no Ubuntu 14.04 LTS é:

127.0.0.1	localhost
127.0.1.1	case

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Se você tem várias máquinas virtuais em seu sistema, cada qual rodando um serviço e cada uma com seu próprio endereço IP, na rede, é muito mais fácil dar um apelido a cada uma.
Nos meus exemplos, vou usar uma máquina com um IP fixo 192.168.0.113, apelidada de infinity.
Veja como fica a edição do meu arquivo /etc/hosts, ao qual vou acrescentar alguns apelidos:

127.0.1.1	ultra     # máquina local
192.168.0.113	infinity      #servidor ftp, ssh, apache, mysql 

Claro que você pode dar mais de um apelido para cada número IP.
Com esta configuração, é possível acessar qualquer serviço hospedado na minha máquina local, por um de seus apelidos (localhost, ultra):

ping localhost

ou

ping ultra

O serviço de FTP, hospedado na máquina chamada infinity, pode ser acessado assim:

ftp 192.168.0.113

ou assim:

ftp infinity

O mesmo se aplica ao SSH:

ssh cowboy@infinity
cowboy@infinity's password: 
Welcome to Trisquel GNU/Linux 7.0, Belenos (GNU/Linux 3.16.0-31-generic i686)

Documentation: http://trisquel.info/wiki/

Last login: Fri May  1 11:09:44 2015 from 192.168.0.112
cowboy@infinity:~$ 

Se você tem um servidor Apache na máquina, pode acessar do seu navegador, fornecendo o apelido no lugar do endereço IP: http://infinity ou apenas “infinity/” (veja a imagem).

página padrão do Apache no Trisquel Linux
Clique para ampliar

O mesmo vale pro servidor de impressão CUPS http://infinity:631:
CUPS default printers page
Clique para ampliar.

Há inúmeros outros casos em que você pode simplificar seu acesso a outros dispositivos na rede, através da edição do arquivo de configuração /etc/hosts.
Note que é necessário que os IPs destas máquinas seja fixo — ou você se arrisca a acessar uma máquina diferente com o mesmo apelido, quando houver alguma reinicialização.

Como editar o arquivo /etc/hosts

O arquivo /etc/hosts é um arquivo de texto simples e você deve evitar editá-lo em processadores de texto mais complexos (que não foram feitos para editar código).
O arquivo associa endereços IP a hostnames — um a cada linha.
Veja as regras de edição:

  • Cada IP pode ser associado a um apelido ou mais (separados por espaços):
    192.168.0.21 cups impressoras serv_imp
  • Comentários podem ser feitos com “#”. Tudo o que vier depois deste caractere e até o fim da linha será ignorado.
  • Nomes de hosts ou hostnames devem conter apenas caracteres alfanuméricos — mas sempre começando com caracteres alfabéticos.

Após a edição e gravação do arquivo, já é possível usar o novo hostname. Não há necessidade de reiniciar o computador ou qualquer serviço no sistema — exceto em casos em que o arquivo está sendo mantido em cache por alguma aplicação.

O servidor BIND — Berkeley Internet Name Domain Server — implementa o servidor de nomes para sistemas UNIX.
O BIND acrescenta ou substitui as funções do arquivo /etc/hosts e é uma solução mais confiável.

Em que casos o uso do /etc/hosts pode ser o mais indicado

Atualmente, a tabela de hosts foi substituída pelo uso do DNS. Ainda assim, de acordo com o manual, ela é amplamente usada para:

  1. bootstrapping — Muitos sistemas tem uma pequena tabela hosts, contendo o endereço e o nome para alguns hosts importantes na rede local. Isto é útil quando o DNS ainda não estiver sendo executado, por exemplo, durante a inicialização do sistema.
  2. NIS — Sites que usam o NIS, confiam na tabela de hosts para guardar sua relação de hosts.
    Mesmo podendo usar o DNS, muitos sites NIS, ainda usam esta tabela como backup.
  3. nós isolados — Pequenas redes, com máquinas simples ou sites isolados da rede, usam a tabela de hosts, contida no /etc/hosts em vez do DNS.
    Em situações com raras mudanças nas informações locais e a rede não estando conectada à Internet, o DNS oferece pouca vantagem.

O arquivo HOSTS na história

Muito antes de termos tantos dispositivos conectados à Internet, os poucos sites que se encontravam conectados, tinham um arquivo chamado “HOSTS.TXT”, que provia um mapeamento entre os nomes dos hosts e seus endereços na rede, de maneira simples, que dava pra qualquer pessoa ou programa ler.
À medida em que a quantidade de máquinas conectadas à rede foi crescendo, a quantidade de cópias do arquivo HOSTS foi aumentando e foi-se percebendo o quanto mantê-lo atualizado era ineficiente.
Propôs-se que a Stanford Research Institute Network Information Center (NIC) centralizasse o arquivo HOSTS, mantendo=o atualizado, em 1974.
Esta solução funcionou bem por quase uma década.
O aumento constante da quantidade de dispositivos conectados, contudo, passou a exigir que outra solução fosse adotada.
Para ter uma idéia, no fim da década de 80, o arquivo estava se tornando muito grande.
Novos dispositivos entravam na rede, outros mudavam de nome ou deixavam de existir, constantemente.
Alguns sites passavam a noite toda fazendo o download e a sincronização do seu HOSTS.TXT com o arquivo de Stanford. Ao fim do trabalho, ele já estava desatualizado — e era comum vir com erros, que se propagavam pela rede, causando transtornos.
A necessidade de se solucionar estes problemas, levou à concepção do BIND, desde 1983 e implementado pouco antes da década de 1990.

Referência: http://www.livinginternet.com/i/iw_dns_history.htm

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 *