Verwenden Sie für alle (zukünftigen) Verbindungen denselben DNS-Server

10

Ich frage mich, ob es möglich ist anzugeben, dass alle Verbindungen (auch in Zukunft, wie bei Verwendung von WLAN an einem anderen Ort (= andere SSID)) einen vordefinierten DNS-Server verwenden

Wenn ich einige (konkrete) Verbindungen habe, könnte ich zu den IPv4-Einstellungen gehen und dort den DNS-Server angeben (im Falle einer neuen Verbindung müsste ich dies jedoch tun (und es nicht vergessen)).

Dies kann besonders nützlich sein für einige sichere / filternde DNS (z. B. 208.67.222.123 und 208.67.220.123 von opendns).

kleofas
quelle

Antworten:

4

Die Art , wie ich dies tun ist , um Satz supersede domain-name-serversin /etc/dhcp/dhclient.conf. Ich habe verschiedene Optionen, einschließlich headoder tailDateien, unter /etc/resolvconf/resolv.conf.d/Ordner ausprobiert , aber nur dhclient.confden Trick für mich. Ich habe es in den Versionen 13.04, 14.04 und 15.04 von Ubuntu gemacht - funktioniert immer.

Die Grundidee ist, dass Sie beim Herstellen einer Verbindung zu einem WLAN-Zugangspunkt bestimmte Informationen vom dhcpServer erhalten. Die supersedeOption weist Ubuntu an, den von dhcpIhnen gesendeten Server durch Ihren eigenen zu ersetzen . In diesem Fall ersetzen wir den DNS-Server. Egal mit welchem ​​WLAN Sie eine Verbindung herstellen, Ihr Ubuntu ersetzt WLAN-DNS durch ein eigenes.

Unten ist das Beispiel meiner eigenen dhclient.confDatei. Beachten Sie die Zeile supersede domain-name-servers 208.67.220.220;:

$ cat /etc/dhcp/dhclient.conf                                                  
# Configuration file for /sbin/dhclient, which is included in Debian's
#   dhcp3-client package.
#
# This is a sample configuration file for dhclient. See dhclient.conf's
#   man page for more information about the syntax of this file
#   and a more comprehensive list of the parameters understood by
#   dhclient.
#
# Normally, if the DHCP server provides reasonable information and does
#   not leave anything out (like the domain name, for example), then
#   few changes must be made to this file, if any.
#

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;

Wenn Sie möchten, können Sie jetzt die prependOption verwenden, sowohl WLAN als auch Ihren eigenen Server zu verwenden. Falls ein WLAN-Server ausfällt, wird Ihre Anfrage an die vorangestellten DNS weitergeleitet.

Sergiy Kolodyazhnyy
quelle
Ich habe auch ein Skript geschrieben, mit dem DNS für alle in gespeicherten Verbindungen manuell festgelegt werden /etc/NetworkManager/system-connectionskann. Es scheint jedoch, dass es in 15.04 nicht funktioniert. Lassen Sie mich wissen, wenn Sie es wollen, und ich werde die Antwort mit einer anderen, ähnlichen Frage verknüpfen, wo ich sie hier gepostet habe
Sergiy Kolodyazhnyy
Hallo @Sergiy Kolodyazhnyy, ich habe festgestellt, dass Ihre Lösung für IPv4-DNS-Server gut funktioniert, aber ich kann sie nicht für IPv6 zum Laufen bringen. Ich habe diese Zeilen hinzugefügt /etc/dhcp/dhclient.conf, um sowohl IPv4- als auch IPv6-DNS-Server festzulegen: supersede domain-name-servers 84.200.69.80, 84.200.70.40; supersede dhcp6.name-servers 2001:1608:10:25::1c04:b12f, 2001:1608:10:25::9249:d69b; Wenn ich anschließend die Verwendung von DNS-Servern abfrage ( nmcli dev show | grep DNS), sind nur die IPv4-DNS-Server betroffen. Das System scheint immer noch einen Vorschlag von Upstream für IPv6 zu übernehmen. Irgendeine Idee, wie man das behebt?
Django
Hallo @django, ich habe nicht so viel Erfahrung mit IPv6-Einstellungen, kann also nicht sagen, wie ich das beheben soll. Laut einigen Fehlerberichten im Debian-Bug-Tracker gab es diese Option in dhclient vor 4.0 nicht, aber ich glaube nicht, dass dies hier der Fall ist. Ich habe auch Ihre Frage gefunden, askubuntu.com/q/1151913/295286 , hoffentlich kann sie beantwortet werden. Ich habe es schon + 1'ed. Wenn ich etwas finde, werde ich eine Antwort posten, aber bis jetzt habe ich nichts vorzuschlagen
Sergiy Kolodyazhnyy
0

/ etc / resolvconf ist das Paket, das dies behandelt. Es erstellt dynamisch Ihre /etc/resolv.conf-Datei basierend auf allen möglichen Regeln.

Sie können Ihren bevorzugten DNS-Server in /etc/resolvconf/resolv.conf.d/head festlegen

Alle anderen DNS-Server würden danach für alle Schnittstellen kommen.

Es gibt viele fortgeschrittenere Möglichkeiten, um resolvconf an Ihre speziellen Anforderungen anzupassen, die Dokumente oder Anleitungen zu lesen.

David McNeill
quelle
-1

Öffnen Sie das Netzwerksteuerungsfeld für jedes von Ihnen verwendete Netzwerkgerät. Wireless / Wired / VPN ... auf den IPv4-Registerkarten legen Sie nur DHCP-Adressen fest und geben Sie Ihre DNS von dort aus manuell an. Machen Sie dasselbe für IPv6 nur, wenn Sie es verwenden.

Kendrick
quelle
5
Die Frage war ganz konkret: "Wie geht das nicht?".
Evpok