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

起動するたびに/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~私を悩ませていたのと同じ標準ファイルに置き換えられました。

ファイルの内容を見ると、ネットワーク自体から情報を取得すると信じられます。インターネット接続なしでVirtualboxで実行すると、.isoファイルはそのまま残ります。

ファイルの一部を削除して/etc/dhcp/dhclient.confネットワークから情報を取得しないように変更しました。domain-name-serverdomain-name-searchrequest

残念ながら仕事はありません。

NetworkManagerがインストールされていません。このisoはUbuntu 14.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。小さなDHCPクライアントは次のとおりです。busybox

さらに調査する予定です。


アップデート2と回避策:

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

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

ここで問題の解決にご協力いただきありがとうございます。

ベストアンサー1

  1. resolv.confローカルDHCPサーバーから提供されたデータは変更を上書きするため、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 -asudo ifup -a

  1. あなたのシステムが使用するウズベキスタンこれは非常に小さなDHCPクライアントプログラムです。 udhcpクライアントはDHCPサーバーとリースをネゴシエートし、リースが行われたか失われたときにスクリプトセットに通知します。使い方を読むことができます。ここまたは(元のように)このスクリプトを編集してください。

おすすめ記事