Mir wurden die Dateien für einen Mini gegeben linux
, der direkt hinein bootet firefox
. Es funktioniert für alles, was es tun sollte, nur dass ich keine Internetverbindung bekomme.
Wir haben 3 DNS-Server im Netzwerk, die alle funktionieren. Ich kann sie auch anpingen. Aber wenn ich es versuche ping google.de
oder wget google.de
bekomme ich einen bad address
Fehler.
nslookup google.de
funktioniert aus irgendeinem Grund.
Ich habe das Problem resolv.conf
auf dem gebooteten System gefunden, das nicht den gleichen Inhalt wie den hat resolv.conf
, den ich in die .iso
Datei geschrieben habe.
Ich habe versucht, alle Faktoren zu verstehen, die beim Erstellen und Ändern eine Rolle spielen resolv.conf
. Ich bin mir nicht ganz sicher, ob ich alles verstanden habe, aber ich habe dort definitiv keine Lösung gefunden.
Als letzten Versuch habe ich versucht, die resolv.conf
Datei mit unveränderlich zu machen
:~# chattr +i /etc/resolv.conf
Beim erneuten Erstellen und Booten wurde meine Datei zu meiner Überraschung in umbenannt, resolv.conf~
und an ihrer Stelle befand sich dieselbe Standarddatei, die mich verfolgt hat.
Der Dateiinhalt lässt mich glauben, dass er die Informationen aus dem Netzwerk selbst bezieht. Beim Starten der .iso
in Virtualbox ohne Internetzugang bleibt meine Datei unverändert.
Ich habe versucht zu ändern /etc/dhcp/dhclient.conf
, um die Informationen nicht aus dem Netz zu bekommen, indem ich domain-name-server
und domain-name-search
aus dem request
Teil der Datei lösche.
Hat leider nicht geklappt.
Ich habe den NetworkManager nicht installiert. Die ISO basiert auf Ubuntu 14.04.
Es fehlen wahrscheinlich wichtige Informationen. Ich biete es gerne an.
AKTUALISIEREN:
Ich glaube, ich habe die Datei gefunden, die gelöscht wird resolv.conf
.
Es scheint so als /usr/share/udhcpc/default.script
#!/bin/sh
# udhcpc script edited by Tim Riker <[email protected]>
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
RESOLV_CONF="/etc/resolv.conf"
[ - n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"
case "$1" in
deconfig)
/bin/ifconfig $interface 0.0.0.0
for i in /etc/ipdown.d/*; do
[ -e $i ] && . $i $interface
done
;;
renew|bound)
/bin/ifconfig $interface $ip $BROADCAST $NETMASK
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
metric=0
for i in $router ; do
route add default gw $i dev $interface metric $((metric++))
done
fi
echo -n > $RESOLV_CONF # Start ----------------
[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
done
for i in /etc/ipup.d/*; do
[ -e $i ] && . $i $interface $ip $dns
done # End ------------------
;;
esac
exit 0
Es ist Teil des udhcpc
Programms. Ein winziger DHCP-Client, der Teil von istbusybox
Wird weiter untersuchen.
UPDATE2 UND LÖSUNG:
Ich habe den Teil auskommentiert (#Start to #End), der die /etc/resolv.conf
Datei scheinbar überschreibt und das mit Sicherheit. Das war der Täter. Ein obskures Drehbuch hat all diese Probleme verursacht.
Ich änderte die Frage, um zu reflektieren, was eigentlich bekannt sein musste, um mein Problem zu lösen, damit es für Leute mit dem gleichen Problem leichter zu finden war und ich eine Antwort akzeptieren konnte.
Vielen Dank für die Hilfe hier, um die Dinge herauszufinden.
quelle
Antworten:
1) Sie sollten Ihre resolv.conf nicht manuell aktualisieren, da alle Änderungen durch Daten überschrieben werden, die Ihr lokaler DHCP-Server bereitstellt. Wenn Sie möchten, dass es statisch ist, führen Sie es aus
sudo dpkg-reconfigure resolvconf
und beantworten Sie dynamische Updates mit "Nein". Wenn Sie dort neue Einträge hinzufügen, bearbeiten/etc/resolvconf/resolv.conf.d/base
und ausführen möchtensudo resolvconf -u
, werden Ihre Einträge und die Einträge des DHCP-Servers angehängt.2) Versuchen Sie, Ihre / etc / network / interfaces zu bearbeiten und dort Ihre Einträge hinzuzufügen, z
und dann neu starten
/etc/init.d/networking restart
odersudo ifdown -a
undsudo ifup -a
3) Ihr System verwendet udhcp , ein sehr kleines DHCP-Client-Programm. Der udhcp-Client handelt eine Lease mit dem DHCP-Server aus und benachrichtigt eine Reihe von Skripten, wenn eine Lease erhalten wird oder verloren geht. Sie können hier lesen, wie es verwendet wird , oder einfach dieses Skript bearbeiten (wie Sie es getan haben).
quelle
/etc/resolvconf/resolv.conf.d/base
und liefresolvconf -u
. Es hat leider nicht funktioniert.dpkg-reconfigure resolvconf
. Die Einträge waren nicht da. Und ich habe Einträge mit beidennameserver ip
undsearch domain
.dpkg-reconfigure resolvconf
werden keine Einträge hinzugefügt, aber Sie können automatische Updates deaktivieren. Wenn Sie Updates deaktivieren, können Sie die resolv.conf manuell bearbeiten und sie sollte nicht überschrieben werden.resolvconf -u
die Einträge nicht hinzugefügt.Ich bin auch darauf gestoßen. Das Auskommentieren
domain-name-server
hat es auch für mich nicht behoben.Außerdem benutze ich nicht
resolvconf
, nur einfach/etc/resolv.conf
.Ich habe nicht versucht,
chattr +i
zu sperren,resolv.conf
weil es zu hacky scheint. Außerdem möchte ich, dass Puppet bei Bedarf Änderungenresolv.conf
vornehmen kann.Die beste Lösung, die ich gefunden habe, setzt das Standardverhalten der
dhclient
Verwendung der dokumentierten Hooks außer Kraft .Erstellen Sie eine neue Datei
/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
mit folgendem Inhalt:Dann machen Sie die Datei ausführbar:
Wenn dhclient jetzt ausgeführt wird - entweder beim Neustart oder wenn Sie es manuell ausführen
sudo ifdown -a ; sudo ifup -a
- wird dieses Skript geladennodnsupdate
. Dieses Skript überschreibt eine interne Funktionmake_resolv_conf()
, die normalerweise überschrieben wird,resolv.conf
und führt stattdessen nichts aus.Das hat bei mir unter Ubuntu 12.04 geklappt.
quelle
/etc/resolv.conf
wurde nach dem Neustart überschrieben.Ubuntu 16.04
Wenn die Netzwerkschnittstellen für Ihre Serverinstanz von DHCP gesteuert werden, überschreibt das Programm dhclient Ihre/etc/resolv.conf
Datei bei jedem Neustart des Netzwerkdienstes.Sie können das Problem beheben, indem Sie die
/etc/dhcp/dhclient.conf
Datei bearbeiten und Anweisungen zum Ersetzen von Domänennamen- , Domänensuch- und Domänennamenservern wie folgt hinzufügen :In diesem speziellen Fall befindet sich der Nameserver unter "192.168.56.103" und der Domainname lautet "local.com".
Beachten Sie, dass jede Zeile mit einem Semikolon abgeschlossen ist und der Domänenname in doppelte Anführungszeichen eingeschlossen ist.
quelle
/etc/resolv.conf
mit 127.0.0.53 überschrieben.dnsmasq
gehe in dieses Verzeichnis:
Öffnen Sie die Datei mit dem Namen head und geben Sie die DNS-IPs oder -Namen ein. Öffnen Sie die Datei mit dem Namen tail und fügen Sie die Domain dort ein. Starten Sie neu.
quelle
In Azure-VMs kann /etc/resolv.conf nicht direkt bearbeitet werden.
Versuchen Sie, die DNS-Gesamtdaten in die Netzwerkkonfigurationsdateien / etc / sysconfig / network-scripts / ifcfg-eth0 und so weiter wie folgt aufzunehmen:
DOMAIN = example.com
DNS1 = 10. . . *
DNS2 = 10. . . *
DNS3 = 10. . . *
und starten Sie den Netzwerkdienst neu, nachdem Sie die Dateien gespeichert haben. Sie werden sehen, dass die Konfiguration dann auch in die resolve.conf eingefügt wird.
quelle
Um die DNS-bezogenen Änderungen
resolv.conf
dauerhaft zu machen, müssen Sie die genannte DHCP-Konfigurationsdatei änderndhclient.conf
. Sie finden die Datei in/etc/dhcp/dhclient.conf
.Öffnen Sie die Datei zum Bearbeiten (vergessen Sie nicht, sudo zu verwenden). Sie werden folgende Zeilen sehen:
Entfernen Sie das vorangestellte "#" und verwenden Sie die gewünschten Domainnamen- und / oder Domainnamenserver. Speichern Sie es. Jetzt sind die DNS-bezogenen Änderungen dauerhaft.
Credits gehen an: https://itsfoss.com/resolvconf-permanent-ubuntu/
quelle
Verwenden Sie den folgenden Befehl, um zu verhindern, dass die Datei resolv.conf oder eine andere Datei nach dem Neustart überschrieben wird
chattr -V + i Dateiname zB chattr -V + i /etc/resolv.conf
Verwenden Sie den folgenden Befehl, um die Änderung rückgängig zu machen:
chattr -i Dateiname - um das Einfügen in die Datei wieder zu aktivieren
chattr (Attribut ändern) ist ein Linux-Befehlszeilendienstprogramm, mit dem bestimmte Attribute für eine Datei im Linux-System festgelegt / deaktiviert werden, um das versehentliche Löschen oder Ändern wichtiger Dateien und Ordner zu verhindern, obwohl Sie als Root angemeldet sind.
quelle
chattr
, aber festgestellt hat, dass dies keine Auswirkungen hatte.Unter Ubuntu 18.04 mit NetworkManager. Sie müssen die Datei 'resolv.conf' entfernen und von NetworkManager eine Datei für Sie generieren lassen.
So entfernen Sie die Datei im Terminaltyp
sudo rm -f /etc/resolv.conf
: Dadurch wird die Datei für Sie gelöscht.Starten Sie das System neu und NetworkManager generiert eine resolv.conf-Datei für Sie.
quelle