Como resolver problemas de conexão Wi-Fi com um ajuste no DHCP, no Android.

O sistema operacional Android, do seu celular, possui um menu “escondido”, com opções de configuração e ajuste mais específicas ou avançadas.
A dica deste post é de fácil implementação e não traz qualquer consequência danosa para o seu aparelho. Se nada funcionar do jeito que você gostaria, é simples desfazer para tentar outra solução.

Para ter acesso ao hack do DHCP legacy, é necessário ativar o menu de opções do programador do Android — certifique-se de ler o artigo do link, se não souber do que estou falando.

Outra coisa importante a se dizer é que o item a ser ajustado não está presente em todas as versões do Android — apenas na versão 6.0 Marshmallow, de alguns dispostivos.
Para contextualizar, este artigo foi baseado em um aparelho Samsung Galaxy J5, em que o ajuste pode ser feito.

Portanto, verifique se o item está presente no seu dispositivo, antes.
Se não estiver, tente outras soluções para os problemas de conexão Wi-Fi do seu Android.

Se houver suporte à configuração, o item de menu estará presente em Configurações / Opções do Desenvolvedor / “Usar cliente DHCP legado”.

android dhcp legado

Ative a opção e veja se isto resolve o problema.
Se você não conseguir perceber alguma melhora no seu problema de conexão Wi-Fi ou experimentar piora na situação, volte ao menu de opções do desenvolvedor e desative o “DHCP legado”.

O que o Cliente DHCP legado faz?

Presente em algumas versões do Android 6.0, o “cliente DHCP legado (legacy)” faz a mesma coisa que o cliente DHCP padrão do seu smartphone ou tablet já faz.

O ajuste, troca a seleção para usar o configurador DHCP antigo (da versão 5.1 Lollipop do Android)
A diferença é que a versão padrão (a atual) é totalmente escrita em JAVA.

Não existe a intenção de “resolver problemas de conexão”, com este ajuste, aqui.
Ele está aí apenas para quem tiver algum roteador mais antigo (anterior a 2015) e que possa estar enfrentando algum gargalo na comunicação entre seus dispositivos.

Na verdade, alguns roteadores muito antigos (com quase 10 anos) podem ter problemas sérios para se conectar a seu aparelho celular, usando o sistema de conexão DHCP atual.

É mais ou menos por estes motivos que o item não vai estar vidível em aparelhos Android mais atuais.
A empresa pressupõe que você atualizou o roteador, além do celular, nos últimos anos.

Como configurar o Android para usar um endereço IP estático na rede Wi-Fi

Há alguns motivos bem fortes para usar um endereço IP estático em seu dispositivo Android, dentro da rede Wi-Fi (doméstica, da empresa etc.)
Alguns usuários relatam que a conexão fica mais consistente — embora eu não veja motivos técnicos o suficiente para isto.
Se você usa aplicativos servidores no seu aparelho, pode ser mais fácil para os aplicativos clientes se conectarem a ele, se o endereço IP sempre for o mesmo.
O procedimento descrito neste texto só vale para a rede a qual você está conectado neste momento. Para as outras redes, o Android continuará a usar as configurações padrão ou que já foram feitas.
android configuração da rede.
Abra o painel de configurações do seu dispositivo e selecione o item de configuração do Wi-fi.
Agora, siga o passo a passo:

  1. Mantenha o dedo pressionado sobre o nome da rede – cujas configurações você deseja editar – até que um menu pop up apareça.
    android configuração da rede.
    Selecione a opção Modificar a rede, para abrir um painel de configurações específicas.
  2. Altere a opção DHCP para Estático.
    android configuração da rede.
  3. Role até Endereço IP e digite o novo endereço que você deseja usar a partir de agora.
    Se é novo em configuração de redes e não entende muito do assunto, é seguro preservar as 3 primeiras partes do endereço e alterar apenas a última (à direita).
    android configuração da rede.
  4. Ao terminar, toque em Salvar, na parte inferior da tela.

Este procedimento é simples, mas pede que se tenha algum conhecimento básico sobre redes.
Se tudo der errado e você não souber como desfazer as modificações, você pode adotar um destes 2 procedimentos:

  • Volte ao segundo passo e selecione a opção DHCP e salve
  • ou volte ao primeiro passo e selecione Esquecer a rede e faça uma reconfiguração automática.

Leia mais sobre como resolver problemas de conexão no artigo Como resolver problemas comuns de conexão ao Wi-Fi.

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.