Eu uso o Ubuntu 17.10 e regularmente encontro problemas ao me conectar a redes WiFi públicas, especialmente aquelas que redirecionam para um portal de login.
Ao trabalhar na minha rede pessoal, o /etc/resolv.conf contém um servidor de nomes apontando para 127.0.0.53, que (se não me engano) corresponde ao serviço resolvido pelo systemd. E isso funciona muito bem.
Em um Wi-Fi público, por algum motivo, isso não parece ajudar, e ao tentar acessar uma página com o Firefox, ele carrega por um longo tempo antes de me informar que não conseguiu encontrar o URL que eu forneci.
Neste momento, percebi esta situação:
Definindo dns=none
em /etc/Networkmanager/Networkmanager.conf
[main]
plugins=ifupdown,keyfile,ofono
dns=none
[ifupdown]
managed=false
[device]
wifi.scan-rand-mac-address=no
Desativando o serviço resolvido pelo sistema: sudo systemctl enable systemd-resolved.service
sudo service network-manager restart
Enchendo manualmente o /etc/resolv.conf, primeiro preciso inserir o IP do roteador público como servidor de nomes. Isso carrega o portal ao inserir o IP do roteador no Firefox. Então, eu faço o login.
#Generated by NetworkManager
nameserver 192.168.44.1
Edite /etc/resolv.conf de volta com endereços DNS públicos (geralmente 8.8.8.8)
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.8.4
Após este procedimento, eu nunca encontrei nenhum problema para o resto da sessão, mas eu queria saber se havia uma maneira não tão dolorosa de corrigir esse problema. Eu sei que o dnsmasq existe, mas não o utilizou por um longo tempo, uma vez que conflitava regularmente com a VPN da minha universidade.
Eu meio que descobri como o Ubuntu (e o Linux em geral) funciona sozinho toda vez que um novo problema aparece desde que eu o instalei, então se você não pudesse se aprofundar em detalhes técnicos, eu agradeceria! :)