Em poucas palavras: na primeira vez que um processo tenta usar uma conexão, se ela falhar devido a nenhuma conexão disponível, esse processo único nunca recuperará a capacidade de usar a rede. Eu tenho que matar e reiniciá-lo.
Eu tenho um script Ruby que tenta resolver o 'google.com' três vezes. Se eu desabilitar a rede (por meio do NetworkManager) ou desligar meu WLAN físico, inicie o script, deixe-o falhar uma vez e, em seguida, reative a rede, as outras duas resoluções também falharão, embora o restante do sistema tenha rede. / p>
Um script Python similar exibe os mesmos resultados, assim como o lynx do navegador. Não Firefox embora! Esses comportamentos são testados em uma VM e em uma máquina física executando o XFCE x64 Manjaro mais recente. No Ubuntu x64 mais recente, os mesmos testes funcionam bem.
Por que isso acontece? Isso é um bug, característica, peculiaridade?
EDITAR:
No Manjaro, o conteúdo de /etc/resolv.conf
é regenerado pelo resolvconf.
- Rede ativada:
search lan; nameserver 192.168.1.1
- Rede desativada: arquivo vazio
O Ruby / Python / Lynx só deve ler resolv.conf
uma vez. Assim, na primeira solicitação, ele encontra o arquivo vazio e nunca mais consegue resolver nomes.
E no Ubuntu, /etc/resolv.conf
:
- Rede ativada:
nameserver 127.0.1.1; search lan
- Rede desativada:
nameserver 127.0.1.1
Assim, quando o Ruby / Python / Lynx o ler na rede desativada, eles ainda terão um servidor de nomes para entrar em contato quando uma conexão for reativada. O problema com a configuração do Manjaro é que, sem conexão, não há servidores de nomes. O Ubuntu roda o dnsmasq para 127.0.1.1 e o Manjaro não.