Was ist der richtige Weg, um die DNS-IP zu ändern?

56

Ich vermute, dass der von meinem ADSL-Modem / Router bereitgestellte Nameserver fehlerhaft ist. Wann immer ich zum ersten Mal in Ubuntu auf eine Website gehe, dauert das Auflösen des Domainnamens mindestens 15 Sekunden.

Um dieses Problem /etc/resolv.confzu umgehen , habe ich die Nameserverkonfiguration in 192.168.1.1 (mein ADSL-Modem) auf 8.8.8.8 (Googles primäres DNS) geändert. Dies scheint das Problem zu beheben, aber leider werden meine Änderungen /etc/resolv.confbei jedem Start von "NetworkManager" überschrieben.

Was ist der richtige Weg, um die Nameserver-IP in Ubuntu 10.4 zu konfigurieren?

Wim Coenen
quelle

Antworten:

51

Wenn Sie einen typischen Verbindungsaufbau mit dem Netzwerkmanager und DHCP haben, versuchen Sie Folgendes:

  1. Klicken Sie mit der rechten Maustaste auf das Netzwerkmanagersymbol im Bedienfeld und wählen Sie "Verbindungen bearbeiten ...".
  2. Wählen Sie auf der Registerkarte "Kabel" oder "Drahtlos" Ihre Verbindung aus und klicken Sie auf "Bearbeiten".
  3. (Geben Sie Ihr Passwort ein, wenn die Verbindung als "systemweit verfügbar" eingestellt ist.)
  4. Wählen Sie die Registerkarte IPv4-Einstellungen
  5. Methode auf "Nur automatische (DHCP) Adressen" umschalten
  6. Geben Sie den gewünschten Nameserver in das Feld "Zusätzliche DNS-Server" ein und klicken Sie auf "Übernehmen".

Das sollte den Trick machen.

Marcel Stimberg
quelle
1
Dies funktioniert weiterhin in Ubuntu 12.04 und höher, obwohl NetworkManager jetzt resolvconf für die Verarbeitung von resolv.conf verwendet.
jdthood
4
Wenn Sie sich fragen, wo die Konfiguration endet, schauen /etc/NetworkManager/system-connections/Sie sich das an (Sie benötigen Administratorrechte, um auf diese Konfigurationsdateien zugreifen zu können).
Lekensteyn
2
Dies ändert nur DNS für die aktuelle Verbindung, aber gibt es auch eine Möglichkeit für eine globale DNS-Änderung ?
rubo77
Die Liste ist für mich leer. Was wird standardmäßig verwendet?
J. Taylor
1
Funktioniert auf der Terminalschnittstelle nmtuiübrigens genauso!
Granitosaurus
30

Sie können sie so ändern.

Klicken Sie zuerst auf das Netzwerkmanagersymbol in Ihrer Menüleiste und dann auf das Edit Connections...Element.

Bildbeschreibung hier eingeben

Wechseln Sie nun zu den Registerkarten "Verkabelt" oder "Drahtlos", je nachdem, was Sie verwenden - ich verwende WLAN, also werde ich das verwenden.

Wählen Sie den Namen Ihres Netzwerks und klicken Sie auf Edit...

Wechseln Sie zur Registerkarte IPv4, und ändern Sie sie dann von automatischem DHCP in Nur automatische (DHCP) Adressen.

Geben Sie die IP-Adresse Ihres DNS-Servers ein.

Bildbeschreibung hier eingeben

Klicken Sie auf Speichern und fertig!

jrg
quelle
Während Sie den DNS-Server in den Netzwerkeinstellungen auf jedem PC ändern können, ist es am besten, sie im eigentlichen Router zu ändern, der eine Verbindung zum Internet herstellt, damit alle angeschlossenen Geräte davon profitieren.
Mark Rooney
3
Was ist, wenn er keinen Router an sich hat? Oder will er nur den DNS für diesen Computer / Benutzer ändern? Was ist, wenn es nur dieses eine Mal ist? Vielleicht hat er tatsächlich keinen Routerzugriff und möchte einen anderen DNS-Server verwenden ... Ich kann die ganze Nacht Gründe zu dieser Liste hinzufügen. Guter Tipp und antworte @jrg.
Bruno Pereira
6
Es ist eine schöne grafische Anleitung zum Einstellen von DNS auf einem einzelnen Computer mit Netzwerkmanager. Ich möchte nur darauf hinweisen, dass Sie mehr als ein Komma getrennt setzen können. 8.8.8.8,8.8.4.4. Das Einstellen von DNS für ein LAN kann auch hilfreich sein, wenn das LAN groß genug ist, verwende ich persönlich entweder den Router oder die DNS-Maske. In einem LAN ist es oft einfacher, eine Blacklist oder einen Proxy an einem einzelnen Ort (Router / DNS-Maske / Squid) zu verwalten, als auf jedem Client oder jedem Benutzer auf jedem Client, aber das ist etwas jenseits der hier gestellten Frage.
Panther
29

Der beste Weg, einen Nameserver über die CLI ohne NetworkManger mit einer statischen Adresse oder unabhängig von der Verbindung einzurichten, ist folgender:

Installieren Sie das resolvconf- Paket.

Lauf

sudo nano /etc/resolvconf/resolv.conf.d/head

(Ignorieren Sie die beängstigende Warnung. /etc/resolv.conf wird automatisch generiert. Die Warnung ist also vorhanden und wird in /etc/resolv.conf abgelegt, wenn /etc/resolv.conf generiert wird.) hinzufügen

 nameserver <ip_of_nameserver>

Drücken Sie Ctrl xund antworten Sie mit Ja, um die Datei zu speichern. Generieren Sie abschließend /etc/resolv.conf neu, damit die Änderungen sofort wirksam werden:

 sudo resolvconf -u
Azendale
quelle
1
Aus irgendeinem Grund löste mein nächtlicher Xubuntu-Build vor ungefähr einem Monat keine LAN-Hostnamen mehr auf. Mein DHCP-Server sollte sich selbst als DNS-Server ausgeben (192.168.68.1). Ich habe ihn auch in Network Manager und an jedem anderen Ort fest codiert (siehe Antwort oben). So wie Xubuntu / NetworkMan / Whatever heutzutage eine IP-Adresse von 127.0.xx verwendet, ist es schwierig, das Problem zu diagnostizieren. Ich konnte externe IPs auflösen, so dass es für DNS etwas bekam. Jedenfalls war dies die einzige Antwort, die mein Problem gelöst hat. Vielen Dank
Adam Plocher
18

/etc/dhcp3/dhclient.confSie können dies auch bearbeiten , indem Sie dies in das Dialogfeld "Ausführen" eingeben (wird durch Drücken von Alt+ angezeigt F2).

gksudo gedit /etc/dhcp3/dhclient.conf

Dann finden Sie die folgende Zeile

#prepend domain-name-servers 127.0.0.1;

Und ändere es auf

prepend domain-name-servers 8.8.8.8;

Dadurch wird dhclient (der von NetworkManager verwendete DHCP-Client) Ihren DNS-Servern voranstellen, sodass resolve.conf am Ende so aussieht

nameserver 8.8.8.8
nameserver 192.168.1.1

Diese Lösung funktioniert überall und Sie erhalten immer das DNS, das Sie als primäres ausgewählt haben.

LassePoulsen
quelle
4
Mir scheint, Network Manager schreibt resolv.conf ohne Rücksprache mit dhclient.conf
daithib8
2
Unter Ubuntu 11.10 müssen Sie /etc/dhcp/dhclient.conf anstelle von /etc/dhcp3/dhclient.conf ändern
Pawel Barcik
1
kann in mehreren setzen?
PyRulez
1
@PyRulez Ja, durch Kommas trennen, Semikolon am Ende
Sergiy Kolodyazhnyy
2
Ich habe dies in 14.10 versucht, aber keine Wirkung
rubo77
7

Eine andere Lösung besteht darin, die Konfiguration Ihres Routers so zu ändern, dass der andere DNS-Server verwendet wird. Melden Sie sich einfach bei Ihrem Administrator an. Solange dies nicht der Router ist, der das Problem verursacht, erhalten alle Ihre Client-Computer ein besseres DNS.

Oli
quelle
+1 Einverstanden, wenn dies ein Problem ist, das wahrscheinlich nicht bald behoben werden kann, um es am besten auf dem Router zu beheben, wird es für alle Computer im Netzwerk behoben. Ich finde es am besten, entweder Google DNS oder OpenDNS zu verwenden.
Mark Davidson
1
Das habe ich schon gemacht, aber der Router fungiert dann immer noch als ein zwischengeschalteter Nameserver zwischen Clients und dem konfigurierten Nameserver und es ist immer noch sehr langsam.
Wim Coenen
1
Viele ISPs sperren ihre Router, sodass Sie diese Einstellungen nicht ändern können oder dafür bezahlen müssen.
LassePoulsen
@Wim Wenn Ihr Router innerhalb eines angemessenen Zeitraums keine DNS-Auflösung bereitstellen kann, z. B. 50 ms bei einer guten Verbindung, liegt ein schwerwiegender Fehler vor. So falsch kann es sein, dass es anderen Verkehr ineffektiv behandelt. Möglicherweise ist es an der Zeit, ein Upgrade für 30 USD / 20 GBP durchzuführen.
Oli
1
@Oli: Das DNS-Problem tritt nur auf, wenn der Router von einer Linux-Box aus verwendet wird: Ich hatte das gleiche Problem mit Debian, aber keine Probleme mit Windows. Ich bin sicher, es ist nur ein subtiles Kompatibilitätsproblem. Ansonsten funktioniert der Router einwandfrei.
Wim Coenen
6

Klicken Sie auf die Netzwerkanzeige oben rechts auf dem Bildschirm und wählen Sie Edit Connections.... Wählen Sie die Verbindung aus, die Sie ändern möchten (wahrscheinlich auf der Registerkarte Wiredoder, Wirelessund klicken Sie auf die Edit...Schaltfläche.

IPv4 SettingsWechseln Sie zur Registerkarte des Verbindungsfensters und ändern Sie die Methode von Automatic (DHCP)zu Automatic (DHCP) addresses only. Sie sollten jetzt in der Lage sein, eine DNS-Server-IP-Adresse anzugeben.

Speichern Sie die Verbindung und Sie sollten bereit sein zu gehen. Möglicherweise müssen Sie die Verbindung zurücksetzen, indem Sie sie im Menü der Anzeige auswählen, nachdem Sie die Einstellungen geändert haben.

James Henstridge
quelle
1

Ich glaube, wenn Sie es unter dem Netzwerkmanager selbst ändern, bleiben die Änderungen mit bestehen.

Zum Beispiel, um eth0 zu benutzen

Network Manager -> Verkabelt -> Auto eth0 -> ipv4-Einstellungen.

Stellen Sie Ihren DNS-Server auf 8.8.8.8 ein und übernehmen Sie.

Mark Davidson
quelle
Ich hatte Probleme, irgendetwas mit dem Namen "Netzwerkmanager" zu finden. Es gibt ein "System - Administration - Network Tools", aber das hilft nicht. Schließlich stellte ich fest, dass ich "System - Einstellungen - Netzwerkverbindungen" benötigte.
Wim Coenen
1
In der Kontrollleiste befindet sich ein Netzwerkmanagersymbol (das Ihren Netzwerkstatus anzeigt), auf das Sie mit der rechten Maustaste klicken können, um die Verbindungen zu bearbeiten.
Marcel Stimberg
Dies funktioniert nicht
user568021
0

Verwenden des Terminals

Sie müssen die /etc/resolv.confDatei bearbeiten , um die IP-Adresse des Nameservers festzulegen, die der Resolver abfragen soll. Es können bis zu 3 Nameserver-Internet-IP-Adressen definiert werden. Wenn mehrere Server vorhanden sind, werden sie von der Resolver-Bibliothek in der angegebenen Reihenfolge abgefragt.

Erstens eingeben

sudoedit /etc/resolv.conf

Fügen Sie die IP-Adresse Ihres bevorzugten DNS-Servers wie folgt hinzu:

nameserver <preferred-ip1>
nameserver <preferred-ip2>
nameserver <preferred-ip3>

entnommen aus: http://www.cyberciti.biz/faq/ubuntu-linux-configure-dns-nameserver-ip-address/

Amith KK
quelle
6
Beachten Sie, dass, wenn die Nameserver über DHCP eingestellt /etc/resolv.confwerden, diese überschrieben werden. Dieser Ansatz eignet sich daher nur für Computer mit manuellen Netzwerkkonfigurationen. Technisch gesehen könnten Sie chattr +i /etc/resolv.confverhindern, dass die Datei geändert wird (das habe ich vor Jahren getan), aber der beste Weg für die meisten Maschinen wäre der Ansatz von jrg in seiner Antwort: askubuntu.com/a/90263/13398 .
Scott Severance
@ ScottSeverance Was es das System nicht hatte X
Amith KK
In diesem Fall handelt es sich wahrscheinlich um einen Server mit manuell konfiguriertem Netzwerk. In diesem Fall ist Ihre Antwort genau richtig. Die meisten Ubuntu-Rechner laufen jedoch unter X und können problemlos mit dem anderen Ansatz umgehen. Wenn auf einem Computer nicht X ausgeführt wird, jedoch eine geeignete GUI installiert ist, können Sie die grafischen Tools auch über SSH ausführen ForwardX11=yes.
Scott Severance
6
Wenn Sie versuchen, die Datei /etc/resolv.conf manuell zu bearbeiten, müssen Sie das Paket "resolvconf" installieren und anschließend entweder / etc / resolvconf / resolv bearbeiten. conf.d / head oder /etc/resolvconf/resolv.conf.d/tail.
Azendale
0

Für Headless-Server, auf denen kein X vorhanden ist und die Verwaltung über ssh oder eine andere Methode erfolgt, ist eine Befehlszeilenlösung erforderlich. Wenn resolv.conf nicht überschrieben wird, ist dies der richtige Ort, um die Nameserver zu ändern.

Wenn resolv.conf tut dann überschrieben, auf 14.04LTS zumindest sind die Dateien zu bearbeiten:

  • /etc/resolvconf/resolv.conf.d/head
  • /etc/resolvconf/resolv.conf.d/tail

Ich empfehle dringend, Kommentarzeichenfolgen in Dateien wie diese einzufügen, sodass sie in der generierten Datei (/etc/resolve.conf) erscheinen und Sie sie in Zukunft finden können. Ich beginne und beende jede Datei mit einem einzeiligen Kommentar des Formulars:

  • # ====== begin /etc/resolveconf/resolv.d/tail ======
  • # ====== end /etc/resolveconf/resolv.d/tail ======

und setzen Sie die entsprechenden Richtlinien dazwischen.

Gordon
quelle
0

Ich habe festgestellt, dass das Hinzufügen der Leitung dns-nameserver ipzur Interface-Datei, das Einstellen der IPv4-Einstellungen für die Kabelverbindung auf " Automatisch" (DHCP) und die Eingabe der DNS-Server-IP und des Domänennamens. Durch das Hinzufügen der lokalen DNS-IP zum statischen DNS-Abschnitt des DSL-Routers wird NetworkManager veranlasst, diese lokale Adresse in die resolv.confDatei aufzunehmen, die zusammen mit anderen vom Router abgerufenen Informationen überschrieben wird. All dies zusammen scheint die Auflösung lokaler DNS-Namen dauerhaft zu machen - eine überraschend schwierige Aufgabe. Ich benötige lokales DNS, um einen Linux-Client auf einer Samba-Freigabe mount.cifsin einem von DHCP bereitgestellten Netzwerk bereitzustellen.

Danegerous
quelle
0

If Network-Managerist gestoppt und /etc/resolvconf/resolv.conf.d/basewurde konfiguriert.

Vielleicht resolvconf --enable-updatesist nützlich.

J.Doe
quelle
0

Sie können die IPv4-DNS-Einstellungen auf die hier beantwortete grafische Weise ändern

Wenn Sie sich jedoch fragen, wie Sie dasselbe über die Befehlszeile tun können, müssen Sie die Dateien /etc/NetworkManager/system-connectionsmit dem lsBefehl im Verzeichnis auflisten:

ls /etc/NetworkManager/system-connections

Es muss eine Datei mit dem Namen Ihrer Verbindung geben, meine heißt Wired Connection 1.

Also müssen wir die Datei bearbeiten und DNS-Server hinzufügen:

Sudo nano "/etc/NetworkManager/system-connections/Wired connection 1"

Fügen Sie im [ipv4]Abschnitt so viele DNS-Server hinzu, wie Sie möchten, und trennen Sie sie durch Semikolons. Fügen Sie ;außerdem ;am Ende des letzten DNS-Servers Folgendes hinzu:

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;

Sie können diese Zeile einfach löschen, wenn Sie keine DNS zuweisen möchten.

Außerdem müssen Sie diese Zeile hinzufügen, ignore-auto-dns=trueum von DHCP bereitgestellte DNS-Server (wie den in der Routerkonfiguration festgelegten DNS-Server) zu ignorieren :

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;
ignore-auto-dns=true

Ein kleiner Kontext zu dieser Antwort: Ich habe versucht herauszufinden, welche Datei bearbeitet wird, wenn ich einen DNS-Server in den DNS-Einstellungen der GUI hinzufüge. Daher habe ich diesen Befehl über 16 Stunden ausgeführt: Dabei sudo grep -rs "1.1.1.1" /wurden alle Dateien auf meiner virtuellen Ubuntu-Maschine gescannt aber es endete nie, obwohl es so lange lief, aber ich wusste, dass es möglich ist, dass die Datei darin existiert, /etc/NetworkManageralso führte ich den greperneuten Verweis auf dieses Verzeichnis aus und fand Folgendes: Also/etc/NetworkManager/system-connections/Wired connection 1:dns=1.1.1.1; kam ich hierher zurück, um eine Antwort zu schreiben, nur um herauszufinden, dass Lekensteyn es bereits getan hat wies in den Kommentaren auf die akzeptierte Antwort hin .

Shayan
quelle