Wie stelle ich den DNS-Resolver in Fedora mit dem Netzwerkmanager ein?


15

Ich möchte Google Public DNS ausprobieren. Dazu muss ich die Nameserver Adresse ändern. Ich weiß, dass es in der Datei ist /etc/resolv.conf, aber wann immer ich anfange network-manager, überschreibt es die Werte in dieser Datei mit dem, was es durch Verwendung von DHCP erhält.

Wie sage ich es nicht zu tun? Ich habe die GUI durchgesehen, konnte aber nur eine Option zum Hinzufügen weiterer IP-Adressen finden.

Unten ist die Trophäe :)

Bildbeschreibung hier eingeben

Antworten:


11

Methode 1

Suchen Sie die NetworkManager-Konfigurationsdatei und fügen Sie den folgenden Eintrag hinzu / ändern Sie ihn (in CentOS5 ist es /etc/NetworkManager/nm-system-settings.confoder /etc/NetworkManager/system-connections/) und bearbeiten Sie Ihre DSL-Verbindungsdatei:

[ipv4]
method=auto
dns=8.8.8.8;4.2.2.2;
ignore-auto-dns=true

Hinweis: - Wenn [ipv4]dies nicht funktioniert, versuchen Sie es mit[ppp]

Methode # 2

Sie können die Berechtigung von /etc/resolv.confso ändern , dass sie nicht von anderen Diensten geschrieben werden kann oder von Ihnen verwendet werden kann chattr.

Methode # 3

Erstellen Sie ein Skript, wie im Folgenden beschrieben, /etc/Networkmanager/dispatcher.d/und vergessen Sie nicht, es ausführbar zu machen:

#!/bin/bash
#
# Override /etc/resolv.conf and tell
# NetworkManagerDispatcher to go pluck itself.
#
# scripts in the /etc/NetworkManager/dispatcher.d/ directory
# are called alphabetically and are passed two parameters:
# $1 is the interface name, and $2 is "up" or "down" as the
# case may be.

# Here, no matter what interface or state, override the
# created resolver config with my config.

cp -f /etc/resolv.conf.myDNSoverride /etc/resolv.conf

Eintrag von /etc/resolv.conf.myDNSoverride

nameserver 8.8.8.8

Nein :) Es muss später überschrieben werden, nachdem es einige Informationen vom ISP erhalten hat. Aber das hat mir ein paar Ideen gegeben, ich werde das durchgehen network-scripts, vielleicht ist es irgendwo da ...
wvxvw

Wenn Methode 3 nicht funktioniert, erhalten Sie möglicherweise mehr Erfolg bei der Bearbeitung, /etc/ppp/ip-up.localdie anscheinend aufgerufen wird, sobald pppd die Verbindung hergestellt hat.
Drav Sloan,

@ DravSloan Ich weiß deine Antwort zu schätzen, es funktioniert, aber ich habe einen Hack auf Google gefunden, den ich hier gepostet habe.
Rahul Patil

Die Nummer 1 hat bei mir funktioniert, vielen Dank!
wvxvw

Zumindest unter Debian Jessie existiert die Datei nm-system-settings.conf nicht, obwohl es dafür eine Manpage gibt. Der Manpage-Status, der die nm-Systemeinstellungen angibt, ist mit NetworkManager / NetworkManager.conf als neuem Standard veraltet.
Jeremiah

6

Schauen Sie sich an:

$ man NetworkManager.conf

Wenn Sie eine Zeile mit dns=nonein den [main]Abschnitt einfügen, scheint NetworkManager diese nicht zu berühren /etc/resolv.conf.


1
Nein, hat nicht geholfen. Es hat es trotzdem umgeschrieben. Soweit ich aus dieser Datei schließen kann, dienen die Plugins in diesem Abschnitt zum Zwischenspeichern von abgerufenen DNS-Einträgen. Aber ich kann mich irren.
wvxvw

2
Haben Sie den NetworkManager nach dem Bearbeiten der Datei neu gestartet?
rickhg12hs

Ich habe das Netzwerk über das KDE-Widget deaktiviert und aktiviert. Ich glaube, das sollte es neu starten. Leider service NetworkManager restartfunktioniert ein Neustart über nicht - ich weiß nicht warum: | Es kann keine Verbindung hergestellt werden, nachdem ich versucht habe, es so neu zu starten.
wvxvw

Sehr seltsam, das restartwürde nicht funktionieren. Ich habe das in keinem der Systeme erlebt, die ich benutzt habe.
Rickhg12hs

3
Ok, so Einstellung dns=nonein /etc/NetworkManagerFedora 24 ... (es gibt auch die alte PEERDNS=nonein /etc/sysconfig/network-scripts/ifcfg-${IFNAME}(wie hier zum Beispiel ... wird es verwendet noch) ... die ganze Box neu starten prüfen Es funktioniert?..
David TONHOFER

3

PPPD senario

Verwenden von pponund ppoffbedeutet wahrscheinlich, dass Sie verwenden pppd. In diesem Fall ponwird das Skript ausgeführt /etc/ppp/ppp_on_boot. Sofern Sie kein Argument für angeben pon, werden die Einstellungen von geladen /etc/ppp/peers/provider. Wenn Sie ein Argument angeben, heißt es beispielsweise pon interwebz, dass danach gesucht wird /etc/ppp/peers/interwebz. Es gibt auch /etc/ppp/optionszu überprüfen.

Ich würde mir vorstellen, dass diese Datei die Einstellung enthält usepeerdns. Von der pppd-Manpage:

usepeerdns
   Ask the peer for up to 2 DNS server addresses. The addresses supplied by the peer 
   (if any) are passed to the /etc/ppp/ip-up script in the environment variables 
   DNS1 and DNS2, and the environment variable USEPEERDNS will be set to 1. In 
   addition, pppd will create an /etc/ppp/resolv.conf file containing one or two
   nameserver lines with the address(es) supplied by the peer. 

Kommentieren Sie diese Option aus, hören Sie pppdmit auf poff, bearbeiten Sie Ihre resolv.confund starten Sie Ihre pppdmit erneut ponund prüfen Sie, ob das Problem dadurch behoben wird.

eth0 senario

Wenn Sie Ihre Schnittstelleneinstellungsdatei ( /etc/sysconfig/network-scripts/ifcfg-eth0für eth0) bearbeiten , können Sie sehen, welche Einstellungen der Netzwerkmanager verwendet.

Wenn auf dieser Schnittstelle DHCP ausgeführt wird, können BOOTPROTO=yesSie festlegen, dass Ihre DNS-Einstellungen nicht mit überschrieben werden sollen PEERDNS=no. Wenn Sie eine statische Adresse verwenden, können Sie Ihre DNS-Einstellungen mit festlegen

DNS1="8.8.4.4"
DNS2="8.8.8.8"
SEARCH="yourdomain.com"

Danke, nah, aber noch nicht. Die verwendete Schnittstelle ist pppund es gibt keine entsprechende ifcfg-pppDatei: |
wvxvw

Wie wird Ihre Punkt-zu-Punkt-Verbindung hergestellt? Wie wurde es konfiguriert?
Drav Sloan

Das Interessante daran ist, dass ich nicht weiß, wie es geschaffen wurde. :) Alles was ich weiß ist , dass ponund auf poffmagische Weise arbeiten und dass der Networkmanager ist irgendwie in der Lage , es zu benutzen. Meine erste Vermutung war, dass es gewesen sein muss pppoeconf, aber es ist nicht einmal hier installiert ...
wvxvw

Aktualisiert, um zu sehen, ob Sie es mit den Einstellungen von pppd ändern können.
Drav Sloan

Vielen Dank für Ihre Zeit, obwohl ich am Ende Rahul Patils Antwort verwendet habe, war dies sehr lehrreich!
wvxvw

2

Sie können dies in der Network Manager-Konfigurations-GUI tun. Soweit ich weiß, muss dies jedoch für jede Verbindung einzeln und nicht global erfolgen. Das bedeutet, dass Sie es für jede WLAN-Verbindung einzeln konfigurieren müssen. (Das ist etwas ärgerlich, hat aber auch einen Vorteil, da viele WLAN-Netzwerke DNS für alles andere als den internen Server blockieren. Daher ist wahrscheinlich eine individuelle Konfiguration erforderlich, damit die Dinge funktionieren.)

Gehen Sie in Fedora 19 in jedem Fall entweder zum Feld "Netzwerkeinstellungen", das Sie aus dem Dropdown-Menü von Network Manager erhalten, oder führen Sie das Einstellungsfeld "Netzwerkverbindungen" aus. (Warum sind diese beiden unterschiedlich? Änderungen werden vermutlich schrittweise vorgenommen.) In jedem Fall können Sie dann jede Verbindung bearbeiten und in beiden Oberflächen die Registerkarte IPv4 finden.

Ändern Sie im Netzwerkeinstellungen-Konfigurator Automatisch von Ein zu Aus und geben Sie die Google-Adressen ein. Oder ändern Sie in der Benutzeroberfläche für Netzwerkverbindungen die Methode von "Automatisch (DHCP)" in "Nur automatische (DHCP) Adressen" und geben Sie den DNS erneut in das Feld ein.


1

Ich dns=nonehabe den Hauptabschnitt von hinzugefügt /etc/Networkmanager/NetworkManager.confund dann neu gestartet, wodurch NetworkManager erfolgreich daran gehindert wurde, die Suchanweisung in zu überschreiben /etc/resolv.conf.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.