GNU/Linux >> Znalost Linux >  >> Linux

Co přepíše /etc/resolv.conf při každém spuštění?

Dostal jsem soubory pro mini linux , který se spouští přímo do firefox . Funguje to pro všechno, co by měl dělat, jen nemám připojení k internetu.

V síti máme 3 DNS servery, které všechny fungují. Můžu jim taky pingnout. Ale při pokusu o ping google.de nebo wget google.de Zobrazuje se mi bad address chyba.

nslookup google.de z nějakého důvodu funguje.

Vysledoval jsem problém na můj resolv.conf na spouštěném systému, který nemá stejný obsah jako resolv.conf které jsem vložil do .iso soubor.

Snažil jsem se porozumět všem faktorům, které se týkají vytváření a úprav resolv.conf . Nejsem si úplně jistý, že jsem to všechno pochopil, ale rozhodně jsem tam nenašel své řešení.

Takže jako poslední pokus jsem zkusil vytvořit resolv.conf soubor neměnný pomocí

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

Při přestavbě a opětovném spuštění k mému překvapení byl můj soubor přejmenován na resolv.conf~ a na jeho místě byl stejný standardní soubor, který mě pronásleduje.

Obsah souboru mě nutí věřit, že získává informace ze samotné sítě. Při spouštění .iso ve Virtualboxu bez přístupu k internetu je můj soubor uchováván tak, jak je.

Zkusil jsem změnit /etc/dhcp/dhclient.conf abyste nezískali informace ze sítě, smažte domain-name-server a domain-name-search z request část souboru.

Bohužel nefungovalo.

Nemám nainstalovaný NetworkManager. Iso je založeno na Ubuntu 14.04.

Pravděpodobně chybí zásadní informace. Rád vám to poskytnu.

AKTUALIZACE:

Myslím, že jsem našel soubor, který vymaže resolv.conf .

Zdá se, že je to /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

Je součástí udhcpc program. Malý dhcp klient, který je součástí busybox

Bude dále vyšetřováno.

AKTUALIZACE2 A ŘEŠENÍ:

Okomentoval jsem část (#Start to #End), která zdánlivě přepisuje /etc/resolv.conf soubor a jistě. To byl viník. Takže všechny tyto potíže způsobil neznámý skript.

Související:Používání inotify ke sledování přístupu k souboru?

Změnil jsem otázku tak, aby odrážela, co je vlastně potřeba znát k vyřešení mého problému, aby to bylo snazší najít pro lidi se stejným problémem a mohl jsem přijmout odpověď.

Děkujeme za pomoc při zjišťování věcí.

Přijatá odpověď:

  1. Soubor resolv.conf byste neměli ručně aktualizovat , protože všechny změny budou přepsány daty, které poskytuje váš místní server DHCP. Pokud chcete, aby byl statický, spusťte sudo dpkg-reconfigure resolvconf a na dynamické aktualizace odpovězte „ne“. Pokud tam chcete přidat nové položky, upravte /etc/resolvconf/resolv.conf.d/base a spusťte sudo resolvconf -u , připojí vaše záznamy a záznamy serveru DHCP.

  2. Zkuste upravit /etc/network/interfaces a přidejte tam své položky, jako je

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

a poté restartujte /etc/init.d/networking restart nebo sudo ifdown -a a sudo ifup -a

  1. Váš systém používá udhcp, což je velmi malý klientský program DHCP. Klient udhcp vyjedná pronájem se serverem DHCP a upozorní
    sadu skriptů na získání nebo ztrátu pronájmu. O jeho použití si můžete přečíst zde nebo tento skript jednoduše upravit (jak jste to udělali vy).

Linux
  1. Pochopení souboru /etc/xinetd.conf v Linuxu

  2. Vysvětlení konfiguračního souboru DHCP /etc/dhcp/dhcpd.conf

  3. Ukázkový soubor /etc/mke2fs.conf

  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. hostitel:analýza souboru /etc/resolv.conf se nezdařila

  3. Co přesně dělá možnost konfigurace vyhledávání v /etc/resolv.conf?

  1. Co se stalo s /etc/apt/apt.conf?

  2. Ukázkový soubor /etc/multipath.conf

  3. CentOS / RHEL :Jak obnovit ze smazaného souboru /etc/passwd