GNU/Linux >> Linux の 問題 >  >> Linux

起動するたびに/etc/resolv.confを上書きするものは何ですか?

ミニlinuxのファイルが渡されました 、firefoxを直接起動します 。それは私がインターネットに接続できないことだけを除いて、それがしなければならないすべてのために働きます。

ネットワークには3つのDNSサーバーがあり、すべてが機能します。私もpingできます。ただし、ping google.deを実行しようとすると またはwget google.de bad addressを取得しました エラー。

nslookup google.de 何らかの理由で機能します。

resolv.confまで問題を追跡しました 起動したシステムでresolv.confと同じ内容がない場合 .isoに入れたもの ファイル。

resolv.confの作成と変更に関係するすべての要素を理解してみました 。すべてを理解できたかどうかはわかりませんが、解決策は見つかりませんでした。

それで、最後の努力として、私はresolv.confを作ってみました 使用して不変のファイル

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

驚いたことに、再構築して再起動すると、ファイルの名前がresolv.conf~に変更されました。 その代わりに、私を悩ませてきたのと同じ標準ファイルがありました。

ファイルの内容は、ネットワーク自体から情報を取得していると私に信じさせます。 .isoを開始するとき インターネットにアクセスできないVirtualboxでは、ファイルはそのまま保持されます。

/etc/dhcp/dhclient.confを変更してみました domain-name-serverを削除して、ネットから情報を取得しないようにする およびdomain-name-search requestから ファイルの一部。

残念ながら機能しませんでした。

NetworkManagerがインストールされていません。 isoはUbuntu14.04に基づいています。

おそらく重要な情報が欠落しています。喜んで提供させていただきます。

更新:

resolv.confをクリアするファイルを見つけたと思います 。

/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

これはudhcpcの一部です プログラム。 busyboxの一部である小さなdhcpクライアント

さらに調査します。

UPDATE2とソリューション:

/etc/resolv.confを上書きしているように見える部分(#Startから#End)をコメントアウトしました ファイルと確かに。それが犯人でした。したがって、あいまいなスクリプトがこのすべての問題を引き起こしました。

関連:inotifyを使用してファイルへのアクセスを監視しますか?

問題を解決するために実際に知っておく必要があることを反映するように質問を変更しました。同じ問題を抱えている人を見つけやすくなり、答えを受け入れることができました。

ここで物事を理解するのに助けてくれてありがとう。

承認された回答:

  1. resolv.confを手動で更新しないでください 、すべての変更は、ローカルDHCPサーバーが提供するデータによって上書きされるためです。静的にしたい場合は、sudo dpkg-reconfigure resolvconfを実行します。 動的更新には「いいえ」と答えます。そこに新しいエントリを追加する場合は、/etc/resolvconf/resolv.conf.d/baseを編集します。 sudo resolvconf -uを実行します 、エントリとDHCPサーバーのエントリを追加します。

  2. /etc/network/interfacesを編集してみてください

    のようにそこにエントリを追加します
     auto eth0 
     iface eth0 inet dhcp 
     dns-search google.com 
     dns-nameservers dnsserverip 
    

次に、/etc/init.d/networking restartを再起動します またはsudo ifdown -a およびsudo ifup -a

  1. システムは、非常に小さなDHCPクライアントプログラムであるudhcpを使用しています。 udhcpクライアントはDHCPサーバーとリースをネゴシエートし、リースが取得または失われたときに
    一連のスクリプトに通知します。ここでその使用法について読むか、このスクリプトを編集するだけです(行ったように)。

Linux
  1. サンプル /etc/multipath.conf ファイル

  2. DHCP 構成ファイル /etc/dhcp/dhcpd.conf の説明

  3. サンプル /etc/mke2fs.conf ファイル

  1. Linux の /etc/init.d と /etc/rcX.d ディレクトリの間の接続は何ですか?

  2. ファイルモードが悪いため、/etc/logrotate.conf を無視する

  3. /etc/hosts のサイズ制限は?

  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. /etc/apt/apt.confに何が起こったのですか?

  3. Linux の /etc/xinetd.conf ファイルについて