Debian verwendet niemals die Router-Gateway-Adresse in resolv.conf
Wie kann ich Debian so einrichten, dass die Router-Gateway-Adresse (Nameserver 192.168.1.1) in /etc/resolv.conf nicht angezeigt wird, wenn ich den Computer neu starte oder ausführe (verwenden Sie niemals den Router als Domänennamen-Resolver) /sbin/dhclient
?
Ich verwende nur eine Zeile in /etc/dhcp/dhclient.conf
prepend domain-name-servers x.x.x.x,y.y.y.y,z.z.z.z;
Dies ist meine /etc/network/interfaces-Datei:
auto eth0 iface eth0 inet static address 192.168.1.170 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 getaway 192.168.1.1 up route add -net default gw 192.168.1.1 netmask 0.0.0.0 eth0 dns-nameservers x.x.x.x y.y.y.y z.z.z.z
Wenn ich /sbin/dhclient /etc/init.d/networking restart ausführe
meine /etc/resolv.conf enthält:
nameserver x.x.x.x
nameserver y.y.y.y
nameserver z.z.z.z
nameserver 192.168.1.1
Antwort1
Bereinigen Sie zunächst Ihre Konfiguration. Soll Ihre eth0
Schnittstelle mit einer statischen IP-Adresse oder mit DHCP konfiguriert werden? Wenn statisch, warum führen Sie dann aus dhclient
? Wenn DHCP, warum werden /etc/network/interfaces
statische IP-Parameter und iface eth0 inet static
anstelle von aufgelistet iface eth0 inet dhcp
? Außerdem gibt es keinen Grund, über Ihren Befehl eine Standardroute hinzuzufügen, up route
da Sie die Standardroute bereits als gateway
Parameter angegeben haben.
Beachten Sie, dass prepend domain-name-servers
DNS-Server, wie der Name schon sagt, zur Liste hinzugefügt werden, die vom DHCP-Server bereitgestellt wird. Sie werden dadurch nicht ersetzt.
Ich empfehle, dass Sie, anstatt nach der dhclient
Anpassung der zu verwendenden Nameserver zu fragen, resolvconf
stattdessen das Framework verwenden. resolvconf
Es koordiniert alle möglichen Quellen für DNS-Nameserverinformationen (einschließlich separater DHCP-Clients, die auf einer oder mehreren Netzwerkschnittstellen ausgeführt werden, lokaler DNS-Server, die Sie als Resolver verwenden möchten, und statischer Konfiguration) und zentralisiert die Erstellung einer einzigen zusammenhängenden /etc/resolv.conf
Datei. Das ist viel besser, als mehrere verschiedene Dinge verwalten zu lassen /etc/resolv.conf
und sie dabei übereinander trampeln zu lassen.
Installieren Sie das resolvconf
Paket, falls es noch nicht installiert ist. Dadurch wird dhclinent
das direkte Bearbeiten der /etc/resolv.conf
Datei durch automatisch deaktiviert.
Ihre Anforderung ist nun, dass Sie die vom DHCP-Server bereitgestellten Nameserver nicht verwenden möchten. Kommentieren Sie daher die Zeile mit dem Wert eth*
in aus /etc/resolvconf/interface-order
. Kommentieren Sie unbedingt auch die letzte Zeile der Datei mit dem Wert aus *
, da dieser sonst eth0
trotzdem berücksichtigt wird.
Als nächstes möchten Sie stattdessen eine Reihe statisch bereitgestellter Nameserver verwenden. Da diese systemglobal sind (nicht mit dem Status einer bestimmten Schnittstelle verknüpft), können Sie sie als Nameserver in der lo-Schnittstelle hinzufügen /etc/network/interfaces
:
iface lo inet loopback
dns-nameservers x.x.x.x y.y.y.y z.z.z.z
Und ifdown lo; ifup lo
dies dann zu aktivieren.
Antwort2
Noch ein Punkt: getaWeg 192.168.1.1 sollte g seinaßWeg 192.168.1.1 (weshalb Sie wahrscheinlich die Standardroute hinzufügen mussten, damit irgendetwas funktioniert?)
Antwort3
Wenn Sie es irgendwie vermeiden können, verwenden Sie Ihr Gateway überhaupt nicht als Resolver.
Sie weisen bekanntermaßen Fehler beim DNS-Proxying auf – siehe RFC 5625.
Sie haben eine perfekt funktionierende Linux-Box – legen Sie einfach eine Kopie von BIND oder noch besser „Unbound“ darauf ab.
ObDisclaimer – ich habe dieses RFC geschrieben.