O problema está puramente relacionado ao DNS. Como não havia entradas de servidor de nomes DNS no arquivo /etc/resolv.conf , a resolução de nomes estava falhando enquanto pingava por nome de host para hosts fora de suas entradas / etc / hosts .
No Ubuntu 12.04, o pacote Network Manager fornece a funcionalidade relacionada à rede (em vez do antigo programa networking ), com o resolvconf (e dnsmasq até certo ponto) programa fornecendo a funcionalidade de DNS em massa. Mas, surpreendentemente, no seu caso, o resolvconf não está instalado, por isso temos que atualizar manualmente o arquivo /etc/resolv.conf .
Então, executando o comando
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
basicamente, definimos o servidor DNS gratuito do Google (8.8.8.8) como o servidor de nomes.
Este comando irá inserir o texto "nameserver 8.8.8.8" no arquivo "/etc/resolv.conf" e exibir o texto na tela também. Desta forma, temos um resolvedor de nome de trabalho que resolverá os nomes de host que fornecemos nos endereços IP.
Uma coisa muito importante a notar aqui, estamos usando o DNS do Google, que não é o ideal, você deve usar o DNS do seu ISP aqui. Peça ao seu ISP para fornecer seu endereço DNS (pode ser múltiplo) e adicione o endereço como o servidor de nomes. Embora você possa manter o DNS do Google como backup, caso o seu ISP falhe por algum motivo. Vamos supor que o DNS do seu ISP seja vv.xx.yy.zz , portanto, você precisa executar os seguintes comandos para torná-lo o DNS principal e manter o DNS do Google como backup.
echo "nameserver vv.xx.yy.zz" | sudo tee /etc/resolv.conf && echo -e "nameserver 8.8.8.8" "\nnameserver 8.8.4.4" | sudo tee -a /etc/resolv.conf
Veja o comando -a no comando tee , que é usado para acrescentar, em vez de sobrescrever. Aqui 8.8.4.4 é também o DNS do Google.
Você pode adicionar quantos servidores de nomes desejar em /etc/resolv.conf , mas isso seria um exagero. Apenas mantenha-o simples, mas compacto.