GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was überschreibt /etc/resolv.conf bei jedem Start?

Ich habe die Dateien für ein Mini-linux erhalten , das direkt in firefox bootet . 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 beim Versuch, ping google.de oder wget google.de Ich erhalte eine bad address Fehler.

nslookup google.de funktioniert aus irgendeinem Grund.

Ich habe das Problem in meiner resolv.conf aufgespürt auf dem gebooteten System nicht den gleichen Inhalt wie die resolv.conf hat die ich in die .iso eingefügt habe Datei.

Ich habe versucht, alle Faktoren zu verstehen, die in die Erstellung und Änderung von resolv.conf einfließen . Ich bin mir nicht ganz sicher, ob ich alles verstanden habe, aber ich habe meine Lösung dort definitiv nicht gefunden.

Also habe ich als letzten Versuch versucht, die resolv.conf zu erstellen Datei unveränderlich mit

:~# chattr +i /etc/resolv.conf

Beim Neuaufbau und erneuten Booten wurde meine Datei zu meiner Überraschung in resolv.conf~ umbenannt und an ihrer Stelle war dieselbe Standarddatei, die mich verfolgt hat.

Der Dateiinhalt lässt mich glauben, dass die Informationen vom Netzwerk selbst stammen. Beim Starten der .iso in Virtualbox ohne Internetzugang bleibt meine Datei unverändert.

Ich habe versucht, /etc/dhcp/dhclient.conf zu ändern um die Informationen nicht aus dem Netz zu bekommen, indem Sie domain-name-server löschen und domain-name-search aus der request Teil der Datei.

Hat leider nicht funktioniert.

Ich habe den NetworkManager nicht installiert. Die ISO basiert auf Ubuntu 14.04.

Wahrscheinlich fehlen wichtige Informationen. Ich stelle es gerne zur Verfügung.

UPDATE:

Ich glaube, ich habe die Datei gefunden, die resolv.conf löscht .

Es scheint /usr/share/udhcpc/default.script zu sein

#!/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 Programm. Ein winziger DHCP-Client, der Teil von busybox ist

Werde weiter nachforschen.

UPDATE2 UND LÖSUNG:

Ich habe den Teil auskommentiert (#Start bis #End), der scheinbar die /etc/resolv.conf überschreibt Datei und sicher genug. Das war der Übeltäter. Also hat ein obskures Skript all diese Probleme verursacht.

Siehe auch:Verwendung von inotify zur Überwachung des Zugriffs auf eine Datei?

Ich habe die Frage geändert, um zu reflektieren, was eigentlich bekannt sein muss, um mein Problem zu lösen, damit es für Leute mit demselben Problem einfacher zu finden ist und ich eine Antwort akzeptieren kann.

Danke für die Hilfe hier bei der Lösung.

Akzeptierte Antwort:

  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 sudo dpkg-reconfigure resolvconf aus und antworten Sie mit „Nein“ auf dynamische Updates. Wenn Sie dort neue Einträge hinzufügen möchten, bearbeiten Sie /etc/resolvconf/resolv.conf.d/base und führen Sie sudo resolvconf -u aus , werden Ihre Einträge und die Einträge des DHCP-Servers angehängt.

  2. Versuchen Sie, Ihre /etc/network/interfaces zu bearbeiten und fügen Sie dort Ihre Einträge hinzu, wie

     auto eth0 
     iface eth0 inet dhcp 
     dns-search google.com 
     dns-nameservers dnsserverip 
    

und starten Sie dann /etc/init.d/networking restart neu oder sudo ifdown -a und sudo ifup -a

  1. 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 oder verloren wird. Sie können hier nachlesen, wie es verwendet wird, oder dieses Skript einfach bearbeiten (wie Sie es getan haben).

Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Was ist mit /etc/apt/apt.conf passiert?

  3. Die Datei /etc/xinetd.conf unter Linux verstehen

  4. DHCP-Konfigurationsdatei /etc/dhcp/dhcpd.conf erklärt

  5. Beispieldatei /etc/mke2fs.conf

Was ist Fstab unter Linux | Eine Einführung in die Linux-Datei /etc/fstab

Was ist die Datei /etc/passwd unter Linux?

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Wie mache ich die Nameserver-Adresse in /etc/resolv.conf dauerhaft?

Ignorieren von /etc/logrotate.conf wegen fehlerhaftem Dateimodus

Was ist die Größenbeschränkung für /etc/hosts?