EDITAR MAIO 6,2016
Eu escrevi um script para atualizar todas as configurações das conexões do sistema no diretório /etc/Network-Manager/system-connections/
. A GUI que você usa para editar conexões individuais edita um arquivo específico nesse diretório. O script atualiza todos os arquivos - ele apenas procura por aqueles que não têm o dns configurado com o grep e o configura com o awk.
Como o acesso a esses arquivos requer sudo
access, execute este script com sudo
e, em seguida, reinicie o gerenciador de rede
#!/bin/bash
# Author: Serg Kolo
# Date: May 6, 2015
# Description: this script checks all settings for connections in
# /etc/NetworkManager/system-connections/ , and if there's no custom
# dns set , this script sets it;
# NOTE: run sudo service network-manager restart after running this script
set -x
for file in /etc/NetworkManager/system-connections/* ; do
grep 'dns=208.67.220.220;' "$file" || ( awk '{print;if ($1=="[ipv4]"){getline; print "method=auto\ndns=208.67.220.
220;\nignore-auto-dns=true"}}' "$file" > .tmpfile && ( cat .tmpfile > "$file") )
done
Script em ação:
ORIGINALPOSTAlgunsusuáriosapontaramqueoDNSédealgumaformacontroladopordnsmasq
.Issoédefatoverdade.Euenfrenteiumproblemaumpoucomenor,ondenãoimportacomoeumudeihead
oubody
em/etc/resolvconf/resolv.conf.d
,meucomputadornãoconseguiuacessarinternamentepornomededomínio-apenastrabalhandocomendereçosIP.
Oquefizfoieditaroarquivo/etc/NetworkManager/NetworkManager.conf
.Originalmente,elediziadns=dnsmasq
,maseumudeipara:dns=208.67.222.222
.Emboradessamaneira,nm-tool
nãomenciona208.67.222.222,aindaconseguiusarnomesdedomínio,nãoapenasendereçosIP.
VejacomomeuarquivoNetworkManager.conf
separeceagora:
[main]plugins=ifupdown,keyfile,ofono#dns=dnsmasqdns=208.67.222.222[ifupdown]managed=false
NOTA:Paramaisdetalhessobreomeuproblemaeestasolução,consulteomeupostem askubuntu.com .
UPDATE # 1
Tendo voltado para casa da universidade hoje, descobri que não conseguia me conectar ao WiFi da minha casa. Eu li um pouco sobre man NetworkManager.conf
e acontece que dns=
in [main]
é realmente uma linha para plug-ins, então a linha dns=dnsmasq
está realmente adicionando o plugin dnsmasq ao NetworkManager, aparentemente.
Então, minha solução ainda funcionava, não como eu esperava. Aqui está um trecho da página man:
dns=plugin1,plugin2, ... List DNS plugin names separated by ','.
DNS plugins are used to provide local caching nameserver functionality
(which speeds up DNS queries) and to push DNS data to applications
that use it.
Então, definindo dns=208.67.222.222
eu posso ter, basicamente, impedido o NetworkManager de usar aquele plugin, que de outra forma usaria o servidor DNS local (que aparentemente não funciona).