Her açılışta /etc/resolv.conf üzerine ne yazıyor?


23

linuxDoğrudan çizilen bir mini için dosyalar verildi firefox. Yapması gereken her şey için çalışıyor, sadece internet bağlantısı alamadım.

Ağda, hepsi çalışan 3 DNS sunucumuz var. Onları da ping edebilirim. Ama denemeye çalışırken ping google.deya da wget google.debir bad addresshata alıyorum.

nslookup google.de nedense çalışıyor.

Dosyayı koyduğum resolv.confiçeriğe sahip olmadığı için önyüklenen sistemdeki sorunu takip resolv.confettim .iso.

Yaratmaya ve değiştirmeye giden tüm faktörleri anlamaya çalıştım resolv.conf. Hepsini aldığımdan emin değilim ama kesinlikle çözümümü orada bulamadım.

Son bir çaba olarak, resolv.confdosyayı kullanarak değiştirilemez hale getirmeye çalıştım.

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

Sürprizimi yeniden oluştururken ve yeniden başlatırken, dosyamın adı değiştirildi resolv.conf~ve onun yerine beni rahatsız eden standart dosya aynıydı.

Dosya içeriği beni ağın kendisinden aldığı bilgisine inandırıyor. .isoVirtualbox’a internet erişimi olmadan başlatılırken, dosyam olduğu gibi tutuluyor.

Ben değiştirerek denedim /etc/dhcp/dhclient.confsilerek, net bilgi alamıyoruz için domain-name-serverve domain-name-searchgelen requestdosyasının bir parçası.

Maalesef işe yaramadı.

NetworkManager kurulu değil. Iso, Ubuntu 14.04'e dayanmaktadır.

Muhtemelen hayati bir bilgi eksiktir. Bunu sağladığım için mutluyum.

GÜNCELLEŞTİRME:

Sanırım temizleyen dosyayı buldum resolv.conf.

Öyle görünüyor /usr/share/udhcpc/default.script

#!/bin/sh

# udhcpc script edited by Tim Riker <Tim@Rikers.org>

[ -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

udhcpcProgramın bir parçası . Küçük bir DHCP istemcisi, bu bir parçasıbusybox

Daha fazla araştıracak.


UPDATE2 VE ÇÖZÜM:

/etc/resolv.confDosyanın üzerine yazılan ve yeterince emin olduğu kısmı (#Başla ve #En) 'e yorumladım . Suçlu buydu. Yani belirsiz bir senaryo tüm bu sorunlara neden oldu.

Sorunu çözmek için gerçekte bilinmesi gereken şeyi yansıtması yönündeki soruyu değiştirdim, bu yüzden aynı sorunu yaşayan insanlar için bulmak daha kolay olacak ve bir cevabı kabul edebilecektim.

İşleri çözmedeki yardımın için sağol.


1
Değişmez bayrağın resolv.conf dosyasına ayarlanması, dosya değiştirilmediğinden beklendiği gibi çalışmaz. / Etc içindeki dizin girişi, dosya yeniden adlandırıldığında değiştirildi. Değişmez olmak için / etc ayarlamanız gerekir - gerçekten yapmak istemediğiniz bir şey.
doneal24

@ DougO'Neal görüyorum. Başınız için teşekkürler.
Minix

Yanıtlar:


24

1) resolv.conf dosyanızı manuel olarak güncellememelisiniz, çünkü tüm değişikliklerin yerel DHCP sunucunuzun sağladığı verilerle üzerine yazılması gerekir. Statik olmasını istiyorsanız, sudo dpkg-reconfigure resolvconfdinamik güncelleştirmeler için "hayır" ı çalıştırın ve yanıtlayın. Buraya yeni girişler eklemek, düzenlemek /etc/resolvconf/resolv.conf.d/baseve çalıştırmak sudo resolvconf -uistiyorsanız girişlerinizi ve DHCP sunucunuzun girişlerini ekleyecektir.

2) / etc / network / interfaces komutunuzu düzenlemeye çalışın ve girişlerinizi buraya ekleyin.

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

ve sonra yeniden /etc/init.d/networking restartveya sudo ifdown -avesudo ifup -a

3) Sisteminiz çok küçük bir DHCP istemci programı olan udhcp kullanıyor . Uhhcp istemcisi DHCP sunucusuyla bir kira sözleşmesi yapar ve bir kira sözleşmesi elde edildiğinde veya kaybedildiğinde bir komut dizisini bildirir. Burada kullanımı hakkında okuyabilir veya bu betiği düzenleyebilirsiniz (yaptığınız gibi).


1
Girdileri ekledim /etc/resolvconf/resolv.conf.d/baseve koştum resolvconf -u. İşe yaramadı, ne yazık ki.
Minix

Sudo dpkg-reconfigure resolvconf komutunu çalıştırmayı denediniz mi? Resolvconf -u komutunu çalıştırdıktan sonra girişleriniz sonuç dosyasında değildi? Onları "nameserver 127.0.0.1" veya "google.com'da ara" gibi nasıl eklediniz?
kirill-a

Ben kaçtın dpkg-reconfigure resolvconf. Girişler orada değildi. Ve hem nameserver ipve ile girişleri var search domain.
Minix

Hayır, çalışan dpkg-reconfigure resolvconfgirişler eklemeyecek, ancak otomatik güncellemeleri devre dışı bırakabilirsiniz. Güncelleştirmeleri devre dışı bırakırsanız, resolv.conf dosyasını elle düzenleyebilirsiniz ve üzerine yazılmamalıdır.
kirill-a

Bu kadar beceriksizce ifade ettiğim için kötü, yorum cümlenizi cümle ile yanıtlıyordum. Çalıştırdıktan sonra resolvconf -ugirişler eklenmedi.
Minix

4

Ben de bununla karşılaştım. Yorum domain-name-serveryapmak da benim için düzelmedi.

Ayrıca, kullanmıyorum resolvconf, sadece düz /etc/resolv.conf.

chattr +iKilitlemek için kullanmayı denemedim, resolv.confçünkü çok tehlikeli görünüyor. Ayrıca, kuklacının resolv.confgerektiğinde değişiklik yapabilmesini istiyorum .

En iyi çözüm ben varsayılan davranışını geçersiz kılar bulundu dhclientonun belgelenmiş kancalar kullanarak.

/etc/dhcp/dhclient-enter-hooks.d/nodnsupdateAşağıdaki içeriğe sahip yeni bir dosya oluşturun :

#!/bin/sh
make_resolv_conf() {
    :
}

Ardından dosyayı çalıştırılabilir yapın:

chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate

Şimdi dhclient çalıştığında - ya yeniden başlatıldığında ya da elle çalıştırdığınızda sudo ifdown -a ; sudo ifup -a- bu betiği yükler nodnsupdate. Bu komut dosyası make_resolv_conf(), normalde üzerine yazacak resolv.confve hiçbir şey yapamayan denilen dahili bir işlevi geçersiz kılar .

Bu benim için Ubuntu 12.04'te çalıştı.


Ubuntu'da işe yaramadı 18.04 :( /etc/resolv.confyeniden başlatıldıktan sonra üzerine yazılmıştı
Dan Dascalescu

3

Ubuntu 16.04 Sunucunuz için ağ arayüzleri DHCP tarafından kontrol ediliyorsa, dhclient programı /etc/resolv.confağ servisi yeniden başlatıldığında dosyanızın üzerine yazacaktır .

/etc/dhcp/dhclient.confDosyayı düzenleyerek ve etki alanı adı , etki alanı arama ve etki alanı adı sunucuları için "süper" ifadeleri aşağıdaki şekilde ekleyerek sorunu çözebilirsiniz :

supersede domain-name "local.com";
supersede domain-search "local.com";
supersede domain-name-servers 192.168.56.103;

Bu özel durumda, isim sunucusu "192.168.56.103" te bulunur ve alan adı "local.com" olur.

Her satırın noktalı virgülle sonlandırıldığını ve alan adının çift tırnak içine alındığını unutmayın.


Ne yazık ki bu 18.04 Ubuntu'da işe yaramadı. Yeniden başlattıktan sonra /etc/resolv.conf127.0.0.53 ile üzerine yazılmıştır.
Dan Dascalescu


Ayrıca çalışıp çalışmadığını kontrol etdnsmasq
Sand1512

0

bu dizine git:

  cd /etc/resolvconf/resolv.conf.d

Head adlı dosyayı açın ve DNS IP'lerini veya adlarını buraya yerleştirin. Tail adlı dosyayı açın ve etki alanını buraya yerleştirin. Yeniden Başlatma.


Bu dizin varsayılan olarak Ubuntu 18.04'te mevcut değildir. Bunu yaratan bir servis kurmanız mı gerekiyor?
Dan Dascalescu

0

Azure VM'lerinde /etc/resolv.conf doğrudan düzenlenemez.

Ağ konfigürasyon dosyalarınıza / etc / sysconfig / network-scripts / ifcfg-eth0 ve benzerlerine DNS bütünlükleri eklemeyi deneyin:

DOMAIN = example.com

DNS 1 = 10. . . *
DNS2 = 10'dur. . . *
DNS3 = 10'dur. .. *

dosyaları kaydettikten sonra şebeke servisini yeniden başlatın. Yapılandırmanın daha sonra solve.conf'a ekleneceğini göreceksiniz.


0

DNS ile ilgili değişiklikleri resolv.confkalıcı olarak yapmak için , adlı DHCP yapılandırma dosyasını değiştirmeniz gerekir.dhclient.conf . Dosyayı içinde bulabilirsiniz /etc/dhcp/dhclient.conf.

Dosyayı düzenlemek için açın (sudo kullanmayı unutmayın). Bunun gibi çizgiler göreceksiniz:

#supersede domain-name "fugue.com home.vix.com";
#prepend domain-name-servers 127.0.0.1;

Yukarıdaki “#” harfini kaldırın ve istediğiniz etki alanı adını ve / veya etki alanı adı sunucularını kullanın. Onu kurtar. Şimdi DNS ile ilgili değişiklikler kalıcı olacak.

Krediler: https://itsfoss.com/resolvconf-permanent-ubuntu/


Bu cevap zaten 2 yıl önce verilmişti .
Dan Dascalescu

0

Resvottan sonra resolv.conf veya herhangi bir dosyanın üzerine yazmak için aşağıdaki komutu kullanın

chattr -V + i dosya adı, örneğin chattr -V + i /etc/resolv.conf

Değişikliği Geri Dönmek İçin Aşağıdaki Komutu Kullanın:

chattr -i dosyaadı - dosyaya eklemeyi yeniden etkinleştirmek için

chattr (Özellik Değiştir), bir kök kullanıcı olarak giriş yapmış olsanız bile, önemli dosya ve klasörlerin yanlışlıkla silinmesini veya değiştirilmesini güvence altına almak için Linux sistemindeki bir dosyaya belirli öznitelikler ayarlamak / ayarlamak için kullanılan bir komut satırı Linux yardımcı programıdır.


chattrSorudaki kullanıcının gerçekten denediğine inanıyorum , ancak bunun etkisinin olmadığını belirledi .
Kusalananda

Bu kesin olarak işe yarayacak, denenecek seçenek kullanıcı dosyayı değiştirilemez hale getirmek için değil düzenlemek
Ashish Jain

Lütfen komutu sudo chattr -V + i dosya adıyla çalıştırın, örneğin sudo chattr -V + i /etc/resolv.conf
Ashish Jain

-1

NetworkManager kullanarak ubuntu 18.04 tarihinde. 'Resolv.conf' dosyasını kaldırmanız ve NetworkManager'ın sizin için bir tane oluşturmasına izin vermeniz gerekir.

Terminal tipinde dosyayı kaldırmak için sudo rm -f /etc/resolv.conf; bu dosyayı sizin için siler.

Sistemi yeniden başlattığınızda NetworkManager sizin için bir resolv.conf dosyası oluşturur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.