Yeniden başlatma olmadan / etc / network / interfaces içindeki dns-nameservers düzenleme [duplicate]

18

dns-nameservers 'sını /etc/network/interfaces olarak düzenledikten sonra, ağ paylaşımını yeniden başlatmadan resolvconf(8) ' in yeni değeri okumasını nasıl söyleyebilirim? (hizmet kesintisine neden oluyor)

-u seçeneği işe yaramıyor gibi görünüyor, sadece aynı değerlere güncellenmiş.

    
sordu Eric 20.10.2012 00:44

3 cevap

26

Haklısınız, "resolvconf -u" yaptığınız değişikliği etkinleştirmek için yeterli değildir. Bu komut, resolv.conf dosyasını resolvconf'un veritabanından günceller, oysa veritabanını güncellemeniz gerekir.

Söz konusu arayüzün eth0 olduğunu varsayalım. / Etc / network / interfaces'de bunun gibi görünen bir stanza olduğunu varsayın.

iface eth0 inet static
    [...]
    dns-nameservers 1.1.1.1 2.2.2.2

Artık "dns-nameservers" satırını değiştirdiniz. Bu değişikliği etkinleştirmek için şunu yapın (& amp; & amp; potansiyel olarak açık bir ssh bağlantısını kırmaktan kaçının)

ifdown eth0 && ifup eth0

veya yeniden başlat.

    
verilen cevap jdthood 29.10.2012 08:29
12

Son zamanlarda iki kez çarptım.

İlk kez sudo ifdown eth0 yaptım, tabii ki ssh bağlantımı öldürdü ve makineyi NIC'sini görmezden geldi. Ahh. Tekrar kontrol almak için sunucudaki IPMI arayüzünden geçmem gerekiyordu.

İkinci kez, daha önceki hatalardan öğrendim ve sudo ifdown eth0 ; sudo ifup eth0 yaptım. Ssh penceresi elbette öldü, ancak makine yeni bir ssh bağlantısına hızlı bir şekilde cevap verdi ve DNS modifikasyonlarım etkin oldu. Aynı şeyi ikinci bir sunucuda yaptım ama bu sefer ssh penceresine bir şey yazmadan önce bekledim. Pencere kaldı ve DNS değişiklikleri uygulandı. Olağanüstü.

Kritik olan, kabuğun noktalı virgülü operatörünü kullanmaktı, böylece her iki komut da bir satırda olacaktı. Bu şekilde, arabirimi geri yükleme komutu, arabirimin düştüğü zamana kadar girilmişti. Sanırım bir senaryo yazıp çalıştırabilirdim, ama bu daha kolay görünüyordu.

GÜNCELLEME: Bunu yapmanın başka bir yolu var. Ubuntu ağ hizmetini bir adımda da yeniden başlatabilirsiniz: sudo /etc/init.d/networking restart veya sudo service network-interface restart INTERFACE=eth0 . İlham için JFA'ya teşekkürler.

    
verilen cevap Randall Cook 23.02.2013 01:53
2

Sadece aynı konudan geçti; yeniden başlatmanın bile libc kancasını manuel olarak çağıran değişikliği kaybeder.

Bu yüzden, bulduğum en istikrarlı yol, istenen içeriği /etc/network/interfaces 'ya yerleştirdikten sonra, /etc/resolvconf/resolv.conf.d/original ' yi istenen satırları içerecek şekilde düzenlemek için tail (bu dizinde) bulunmadığından emin olun,% % co_de ve sonra cd /etc/resolvconf/resolv.conf.d çağırır.

/etc/resolvconf/update.d/libc değerinin mevcut olması durumunda (varsayılan olarak tail işaret edilirse original 'den türetilen içeriğin de orijinal kurulum tarafından takip edileceğini unutmayın.

Bu değişikliklerin en güvenli şekilde yeniden başlatılmasıyla uygulanabilmesi, açıkçası delice. Mevcut sistem, "bu dosyayı düzenlemek, belki de bir konfigürasyon yönetim sisteminden konuşlandırmak" için kullanılan şeyi alıp, çok sayıda soyutlama katmanının arkasına saklar ve normal önyükleme çerçevesinin dışında bakım yapmak için temiz bir yol yoktur.

    
verilen cevap Phil P 10.04.2013 08:48

Etiketlerdeki diğer soruları oku