EDYCJA MAJ 6,2016
Napisałem skrypt, aby zaktualizować wszystkie ustawienia połączeń systemowych w /etc/Network-Manager/system-connections/
katalogu. GUI, którego używasz do edycji poszczególnych połączeń, edytuje określony plik w tym katalogu. Skrypt aktualizuje wszystkie pliki - po prostu wyszukuje tych, którzy nie mają dns ustawionego z grep i ustawia go z awk.
Ponieważ dostęp do tych plików wymaga sudo
dostępu, uruchom ten skrypt za pomocą, sudo
a następnie - uruchom ponownie menedżera sieci
#!/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
Skrypt w akcji:
ORYGINALNY POST
Niektórzy użytkownicy wskazali, że DNS jest w jakiś sposób kontrolowany dnsmasq
. To prawda. Mam do czynienia z nieco mniejszy problem, gdzie bez względu na to jak zmieniłem head
lub body
w /etc/resolvconf/resolv.conf.d
mój komputer nie może aktualnie dostęp internowany przez nazwę domeny - tylko pracy z adresami IP.
To, co zrobiłem, to edycja /etc/NetworkManager/NetworkManager.conf
pliku. Początkowo, to powiedział, dns=dnsmasq
ale zmieniłem go na adres: dns=208.67.222.222
. Chociaż w ten sposób nm-tool
nie wspomina się o 208.67.222.222, nadal mogłem używać nazw domen, nie tylko adresów IP.
Oto NetworkManager.conf
jak teraz wygląda mój plik:
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
dns=208.67.222.222
[ifupdown]
managed=false
UWAGA: Więcej informacji na temat mojego problemu i tego rozwiązania można znaleźć w moim poście na askubuntu.com .
AKTUALIZACJA # 1
Po dzisiejszym powrocie do domu z uniwersytetu odkryłem, że nie mogę połączyć się z moim domowym WiFi. Przeczytałem trochę dalej man NetworkManager.conf
i okazuje się, że dns=
in [main]
jest faktycznie linią dla wtyczek, więc linia dns=dnsmasq
faktycznie dodaje wtyczkę dnsmasq do NetworkManagera.
Moje rozwiązanie nadal działało, ale nie tak, jak się spodziewałem. Oto fragment strony man:
dns=plugin1,plugin2, ... List DNS plugin names separated by ','.
Wtyczki DNS służą do zapewnienia lokalnej funkcji buforowania nazw serwerów (co przyspiesza zapytania DNS) oraz do przesyłania danych DNS do aplikacji, które z nich korzystają.
Tak więc, ustawiając, dns=208.67.222.222
mogłem zasadniczo uniemożliwić NetworkManagerowi korzystanie z tej wtyczki, która w innym przypadku używałaby lokalnego serwera DNS (który najwyraźniej nie działa).