GNU/Linux >> Belajar Linux >  >> Linux

Apa yang Menimpa /etc/resolv.conf Pada Setiap Boot?

Saya diberi file untuk linux mini , yang melakukan booting langsung ke firefox . Ini berfungsi untuk semua yang seharusnya dilakukan, hanya saja saya tidak mendapatkan koneksi internet.

Kami memiliki 3 server DNS di jaringan, yang semuanya berfungsi. Saya juga bisa melakukan ping ke mereka. Tetapi ketika mencoba ping google.de atau wget google.de Saya mendapatkan bad address kesalahan.

nslookup google.de bekerja untuk beberapa alasan.

Saya melacak masalah ini ke resolv.conf saya pada sistem yang di-boot tidak memiliki konten yang sama dengan resolv.conf yang saya masukkan ke dalam .iso berkas.

Saya mencoba memahami semua faktor yang digunakan untuk membuat dan memodifikasi resolv.conf . Saya tidak yakin saya mendapatkan semuanya, tetapi saya pasti tidak menemukan solusi saya di sana.

Jadi sebagai upaya terakhir, saya mencoba membuat resolv.conf file tidak dapat diubah menggunakan

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

Saat membangun kembali dan mem-boot lagi, saya terkejut, file saya diubah namanya menjadi resolv.conf~ dan sebagai gantinya adalah file standar yang sama yang telah menghantui saya.

Isi file membuat saya percaya itu mendapatkan informasi dari jaringan itu sendiri. Saat memulai .iso di Virtualbox tanpa akses internet, file saya disimpan apa adanya.

Saya mencoba mengubah /etc/dhcp/dhclient.conf untuk tidak mendapatkan informasi dari internet, dengan menghapus domain-name-server dan domain-name-search dari request bagian dari file.

Sayangnya tidak berhasil.

Saya tidak menginstal NetworkManager. Iso didasarkan pada Ubuntu 14.04.

Mungkin ada informasi penting yang hilang. Saya dengan senang hati menyediakannya.

PEMBARUAN:

Saya rasa saya menemukan file yang menghapus resolv.conf .

Tampaknya /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

Itu bagian dari udhcpc program. Klien dhcp kecil, yang merupakan bagian dari busybox

Akan diselidiki lebih lanjut.

PEMBARUAN2 DAN SOLUSI:

Saya mengomentari bagian (#Start to #End), yang tampaknya menimpa /etc/resolv.conf file dan cukup yakin. Itu pelakunya. Jadi skrip yang tidak jelas menyebabkan semua masalah ini.

Terkait:Menggunakan inotify untuk memantau akses ke file?

Saya mengubah pertanyaan untuk mencerminkan, apa yang sebenarnya perlu diketahui untuk memecahkan masalah saya, sehingga akan lebih mudah untuk menemukan orang-orang dengan masalah yang sama dan saya dapat menerima jawaban.

Terima kasih atas bantuannya di sini dalam mencari tahu.

Jawaban yang Diterima:

  1. Anda tidak boleh memperbarui resolv.conf Anda secara manual , karena semua perubahan akan ditimpa oleh data yang disediakan oleh server DHCP lokal Anda. Jika Anda ingin statis, jalankan sudo dpkg-reconfigure resolvconf dan jawab "tidak" untuk pembaruan dinamis. Jika Anda ingin menambahkan entri baru di sana, edit /etc/resolvconf/resolv.conf.d/base dan jalankan sudo resolvconf -u , itu akan menambahkan entri Anda dan entri server DHCP.

  2. Coba edit /etc/network/interfaces Anda dan tambahkan entri Anda di sana, seperti

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

dan kemudian restart /etc/init.d/networking restart atau sudo ifdown -a dan sudo ifup -a

  1. Sistem Anda menggunakan udhcp yang merupakan program klien DHCP yang sangat kecil. Klien udhcp menegosiasikan sewa dengan server DHCP dan memberi tahu
    serangkaian skrip saat sewa diperoleh atau hilang. Anda dapat membaca tentang penggunaannya di sini atau cukup edit skrip ini (seperti yang Anda lakukan).

Linux
  1. Memahami file /etc/xinetd.conf di Linux

  2. Contoh file /etc/multipath.conf

  3. File konfigurasi DHCP /etc/dhcp/dhcpd.conf dijelaskan

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Contoh file /etc/mke2fs.conf

  3. host:penguraian /etc/resolv.conf gagal

  1. Di /etc/resolv.conf, apa sebenarnya yang dilakukan opsi konfigurasi pencarian?

  2. Mengabaikan /etc/logrotate.conf karena mode file yang buruk

  3. Berapa batas ukuran /etc/hosts?