Yanlış DNS problemini çözmek için resolv.conf dosyamı düzenlemeli miyim?


35

Ubuntu makinemin yanlış DNS sunucusunu kullanması sorunu var. Nedense makine localhostDNS bilgilerini soruyor .

DNS sunucusunu GUI ağ ayarlarına ekledim, ancak /etc/resolv.confyine 127.0.0.1de DNS sunucusu adresini içeriyor . Şimdi dosyayı sadece kendim düzenleyebileceğimi düşündüm, ancak açıkça dosyayı elden düzenlememem gerektiğini söylüyor.

Şimdi, ağ ayarları GUI dosyayı doğru ayarlarla oluşturmadığından, yeni bir resolv.confdosyayı kendim nasıl oluşturabilirim ?


1
Eğer Ubuntu Server 12.04 LTS kullanıyorsanız, kendinize büyük bir iyilik yapın ve /etc/resolvconf/resolv.conf.d/head dosyasını doğrudan eski çözümünüzün görünmesini istediğiniz şekilde düzenleyin . Zorla girinceye kadar çözücü meseleleri dışında hiçbir şeyim yoktu.

Yanıtlar:


40

Ne cevapların hiçbiri bugüne kadar adreslerini yayınlanmıştır sorgulayıcı sahip olduğunu anlamak için başarısız olduğunu ortaya çıkmasıdır nameserver 127.0.0.1içinde /etc/resolv.confyerel bir nameserverın çalıştığını varsayarak, doğrudur. Ubuntu 12.04 Desktop’ta, varsayılan olarak, dnsmasqNetworkManager tarafından kontrol edilen ve dinleyen bir işlem çalışan yerel bir ad sunucusu vardır 127.0.0.1. Ubuntu 12.10'da, dinleme adresi olarak değiştirildi 127.0.1.1.

Dolayısıyla çözüm, değişiklik yapmamaktır resolv.conf. Sorgulayıcının yerel ad sunucusunu kullanmak istediği varsayımı doğrudur.

İsim servisi çalışmıyorsa, yerel isim sunucusuna doğru yönlendirme adresleri verilmez veya başka bir ağ sorunu var.

Sorgu yapan kişi "ağ ayarları GUI" kullanarak "dosyayı doğru ayarlarla oluşturmak" istedi ve bu çalışmadı. Bunun ne anlama geldiğini tam olarak bilmiyorum, ancak doğru resolv.confadreste girmeleri için ad sunucusu adreslerini girmenin doğru yolu budur . Anketörün arayüzleri yapılandırmamak için kullandığını NetworkManagerve kullanmayacağını varsayıyorum ifup.

Çoğu zaman arabirimler DHCP protokolü kullanılarak yapılandırılır. Bu durumda yerel sistemde hiçbir şeyin yapılandırılması gerekmez. DHCP sunucusu müşterilerine kullanmalıdır ele alan adı sunucusu bilir ve içine bilgileri koyar resolvconf gönderir NetworkManager gönderir DHCP istemcisi,, bu bilgileri gönderir resolv.conf. Bu durumda, yapılandırılması gerekebilecek DHCP sunucusudur.

Yerel makinedeki ağ arayüzü statik olarak yapılandırılmışsa, doğru ağ sunucusu adreslerinin örneğin Ağ göstergesi | Bağlantıları Düzenle ... | Kablosuz | bağlantım | Düzenle ... | IPv4 Ayarları | Ek DNS sunucuları.

Yerel ad sunucusunun düzgün çalışmıyor olması mümkündür. Bu durumda sorgulayıcı düzenlemelidir/etc/NetworkManager/NetworkManager.conf

sudo gedit /etc/NetworkManager/NetworkManager.conf

ve çizgiyi yorumla

dns=dnsmasq

"[ana]" bölümünde. Çizgiyi yorumlamak için çizginin #başına bir koyun ve ardından dosyayı kaydedin. Ardından ağ yöneticisini yeniden başlatın.

sudo restart network-manager

Bundan sonra resolv.conf, 127. * adresi yerine yerel olmayan ad sunucusu adresleri girilecektir .

Sorgulayıcı, ifupağ arayüzlerini yapılandırmak için NetworkManager yerine kullanıyorsa, jmartin2279'un cevabı doğrudur: ad sunucusu adreslerini / etc / network / interfaces'e jmartin2279'da açıklanan şekilde eklemeniz gerekir.

Diğer bazı cevaplar tavsiye aksine, genel olarak size gereken değil ekleyebilir nameserver, domainveya searchseçenekler dosyalara /etc/resolvconf/resolv.conf.d/. Bu cevaplar hakkındaki yorumlarımı gör.


1
"DHCP sunucusu, istemcilerin hangi ad sunucusunun adresini kullanması gerektiğini bilir" - DHCP sunucusu üzerinde herhangi bir kontrolünüz olmadığı (genel WiFi erişim noktaları olduğunu düşündüğünüz) ve kullanılan ad sunucusunu geçersiz kılmak istemediğiniz durumlar hariç ... Bağlantı başına aynı yapılandırmayı ayarlama Temel olarak - bağlandığınız her bir WiFi erişim noktası için tekrar tekrar - çözüm değildir.
Teoh Han Hui

Sonunda geldiği dhclientdeğişiklikler (tha nameserversatırları) için yürütmek için ihtiyacım var gibi görünüyor etc/resolv.conf. Özelleştirilmiş bir Xubuntu 14.04 canlı yayın yapıyorum (belki de nedeni budur).
Sopalajo de Arrierez

DNSMasq'ı devre dışı bırakmanın dezavantajları ne olabilir, jdthood? Tabii ki, isim çözünürlüğü ve internet yaptıktan sonra iyi çalışıyor gibi görünüyor.
Sopalajo de Arrierez


Benim resolv.conf için sürekli değişiyor 127.0.0.1diğer namerservers sahip ağım yöneticisi rağmen + dnsmasq dışarı yorumları yapılıyor + yeniden başlatılması + dnsmasq (hala başladı alır gibi) + ağ yeniden öldürdü: /
bazı kullanıcı

17

Arabirimi statik olarak yapılandırmak için ifup kullanıyorsanız, / etc / network / interfaces dosyasına ekleyebilirsiniz.

Bir terminal açın ve şunu yazın:

sudo gedit /etc/network/interface*

Gibi bir şey görmelisin:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Düzenleme:

auto eth0
iface eth1 inet static
address 192.168.1.10 
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8

kendi şebeke bilgilerinizi kullanarak. bu, dns'yi ayarlamanıza izin verecektir. Burada birden fazla dns sunucusu kullanabilirsiniz:

dns-nameservers 8.8.8.8 8.8.4.4

Bunu yaptıktan sonra koşun

ifdown eth0
ifup eth0

Senin durum böyleyse, bu çözüm şudur: "Eğer statik arayüz yapılandırmak için ifup kullanıyorsanız ...."
angelcervera

Bunu test ettin mi? ifdown: interface eth0 not configured
Cerin

3
ssh ile bağlıysanız ifdown / ifup kullanamazsınız. bunun yerine kullanınsudo /etc/init.d/networking restart
TD_Nijboer

11

Ubuntu 12.04'te resolv.conf'un işlenmesi değişti.

Kendi ad sunucusu adreslerinizi eklemek istiyorsanız, /etc/resolvconf/resolv.conf.d/ head dosyasını düzenleyin.

sudo nano /etc/resolvconf/resolv.conf.d/head

ve ad sunucunuzu oraya ekleyin (örneğin: Google açık dns)

nameserver 8.8.8.8

dosyayı kaydedin ve sonra çalıştırın

sudo resolvconf -u

Yeniden başlatma ya da başka bir şey yok. Belki ağ yöneticisini yeniden başlatmanız gerekebilir.

sudo service network-manager restart

Bitti.

Komutu ile test edebilirsiniz

nslookup www.google.com

Sonuç şuna benzer olmalıdır

Server: 8.8.8.8
Address: 8.8.8.8#53

4
/Etc/resolvconf/resolv.conf.d/head dosyasına "nameserver" satırı eklemek hızlıca kesmek gibi çalışabilir ancak bu herhangi bir sorunun doğru çözümü değildir. Bunu yapmak, çözücüyü, her koşulda ad sunucusu adresini kullanır, oysa kullanılacak ad sunucusu koşullara bağlıdır. Örneğin, bir LAN'a bağlıysanız (belki de VPN üzerinden), o zaman LAN üzerindeki özel adları çözebilmek için genellikle LAN ad sunucularını kullanmak istersiniz. Ve mevcut durumda, sistem yerel bir önbellekleme ad sunucusu çalıştırıyor gibi görünüyor, ancak "nameserver 8.8.8.8" eklemek sadece onu atlıyor.
jdthood

@jdthood - Bir sorunu işaret ettiniz. Bir çözüm sunmak ister misiniz?
TJ Biddle 16.03

@TJ Zaten demek istediğin buysa, ana soruya bir cevap daha gönderdim ("resolv.conf dosyamı nasıl düzenlerim?").
jdthood

1
Lütfen bunu tavsiye etmeyin. At çok dosyasının, üst "EL İLE DO DEĞİL DÜZENLEME BU DOSYA - SİZİN DEĞİŞİKLİKLER üzerine yazılır".
Cerin

/Etc/resolv.conf düzenlemesinin elle yeniden başlatmadaki değişikliklerin üzerine yazıldığını belirtmek isterim, ancak /etc/resolvconf/resolv.conf.d/head dosyasını elle düzenleme, yeniden başlatmada yapılan değişikliklerin üzerine yazmaz, ancak yeniden başlatma işleminde elle yapılan değişikliklerin üzerine yazmaz. resolvconf kurulumu bu nedenle uyarının orada olması muhtemeldir.
Ken,

1

Daha fazla giriş eklemek /etc/resolv.confiçin bir /etc/resolvconf/resolv.conf.d/taildosya oluşturun ve buraya ekleyin.

Ancak /etc/resolv.confiçeriyorsa 127.0.0.1, giriş eklemek /etc/resolvconf/resolv.conf.d/tail, hiçbir şeyi değiştirmez. DNS sunucunuzun adreslerini, dinleyen dnsmasq'a gönderecek olan NetworkManager'da statik olarak ayarlamanız gerekir 127.0.0.1.

Statik bir arayüz için DNS yapılandırması , uygun iface stanza’ya eklenen “ dns-nameservers”, “ dns-search” ve “ dns-domain” girişleri olarak yapılmalıdır ./etc/network/interfaces

Daha fazla bilgi için bunu okuyun .

'Ayrıca:

DNS'nizi gnome-network-adminayarlayacak bir gui aracı yükleyebilirsiniz . Dene :

sudo apt-get install gnome-network-admin

3
(1) Hayır, /etc/resolvconf/resolv.conf.d/tail dosyasına "nameserver" seçeneklerini eklemeyin. Bu etkisizdir (çünkü diğer "nameserver" seçenekleri öncelik taşır) ve suboptimal (çünkü yapılandırma statik durumlardır, ancak konfigürasyon ağ koşullarını yansıtmalıdır). (2) Hayır, gnome-network-admin kullanmayın. Resolvconf ile düzgün çalışmıyor. # 60518 no.lu hataya bakın ( bugs.launchpad.net/ubuntu/+source/gnome-system-tools/+bug/60518 ).
jdthood
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.