dnsmasq, .local adreslerini 127.0.0.1 olarak göstermeye çalışmıyor


4

Almak isterim .local işaret edecek adresler (test.local gibi) 127.0.0.1 ama işe yaramadı. En son Ubuntu'dayım. /Etc/NetworkManager/NetworkManager.conf 'a yorum yazdım dns=dnsmasq sonra yaptı sudo service network-manager restart.

Sonra dnsmasq kurdum ve bir address=/local/127.0.0.1 /etc/dnsmasq.d/mycustomfile için sonra sudo service dnsmasq restart. Bahsettiğimden başka hiçbir değişiklik yapmadım.

Ancak test.local adresini ziyaret ettiğimde 127.0.0.1 olarak çözülmüyor, bu .local adresinin bir pingini yapmak da başarılı olamıyor. Belki içeriği /etc/resolv.conf alakalı, değiştirmedim sadece varsayılan:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 222.11.22.36
nameserver 222.11.22.37

Dnsmasq'ı bir arka plan programı olarak çalıştırdığımda çıktım:

$ sudo dnsmasq --no-daemon     
dnsmasq: started, version 2.68 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 222.11.22.37#53
dnsmasq: using nameserver 222.11.22.36#53
dnsmasq: read /etc/hosts - 9 addresses

Dnsmasq çalışırken /etc/resolv.conf otomatik olarak güncellenir (ve dnsmasq durduğunda yukarıdaki girişe geri döner):

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1

Ve bu:

$ sudo nslookup test.local 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   test.local
Address: 127.0.0.1

Ama hala localhost'a ping yapmak işe yaramıyor.

Dnsmasq'ın .local adreslerini çözmek için çalışmasını sağlamak için ne yapmam gerekir?

Yanıtlar:


5

local En azından Ubuntu’da bir tür ayrılmış anahtar kelime gibi görünüyor:

  • address=/local/127.0.0.1 - çalışmıyor.
  • address=/loc/127.0.0.1 -- Eserleri.

rand'Chris: Bir yanıtı geliştirmeye çalıştığınız için teşekkür ederiz Süper kullanıcı . Ancak, birçok kişi diğer kişilerin yayınlarındaki hataları düzeltmenin ve küçük açıklamalar eklemenin doğru olduğuna inanırken, önerilen düzenleme yani (IMHO) ayrı bir cevap olarak kaydedilmesi gerektiği. Değerli bir şey eklediğiniz sürece önceki bir cevaptaki (bazı) bilgileri tekrarlamanız uygundur. (Tabii ki üzerine kurulu ve yazarın ismine dayanarak, üzerine kurduğunuz cevabı tanımlamalısınız.) Ayrıca, bu diğer reddetme .
Scott

7

Görünüşe göre dnsmasq doğru başlıyor. Dnsmasq’ın düzgün çalışıp çalışmadığını test etmelisiniz. nslookup test.local 127.0.0.1.

Sistemin dnsmasq kullandığından emin olmak için, /etc/resolv.conf kullanmak nameserver 127.0.0.1 ilk seçenek olarak.

Ayrıca dnsmasq’da özel bir yukarı akış çözücü çözümünü kullanabilirsiniz. --resolv-file=/etc/resolv.conf.dnsmasq.


Sorumu cevabınıza dayanarak bazı bilgilerle güncelledik, bir göz atarsanız memnun olurum.
user779159

Ayrıca orijinal /etc/dnsmasq.conf dosya orijinal olarak olduğu gibi bırakılmış, her şey yorumlanmış. Oradan ayrılmam gereken şeyler var mı? (600'den fazla satırın üzerinde büyük bir dosyadır.) Yorumuma gitmeyen tek şey son satırdı. conf-dir=/etc/dnsmasq.d çünkü benim özel yapılandırma dosyam bu dizinin altında.
user779159

Dnsmasq'ınız doğru cevap veriyor. conf-dir yönergesi, dizin içindeki tüm dosyaları yükler, böylece sizin durumunuzda gerekmeyen farklı dosyalarda düzenleyebilirsiniz. Orijinal dnsmasq.conf dosyasını olduğu gibi tutabilir ve yapılandırmanızı zaten yaptığınız gibi /etc/dnsmasq.d dosyasındaki özel bir dosyaya koyabilirsiniz. Nslookup'ı çalıştırmak için sudo'ya ihtiyacınız yok. İle tekrar test et nslookup test.local, DNS yapılandırmasını kullanacaktır. /etc/resolv.conf bu zaman.
denisvm

0

İstediğiniz şey yalnızca kendi makinenizi göstermeyi ve diğer bilgisayarların dns çözümlerini kontrol etmek için dnsmasq'ı kullanmaya çalışmak istemiyorsa, istediğiniz şey aslında sadece bazı girişleri eklemek. /etc/hosts. Tüm değişikliklerinizi dnsmasq ve ayarlarında geri almanızı tavsiye ederim ve /etc/hosts üst kısmında aşağıdakiler bulunur:

127.0.0.1 localhost
127.0.1.1 mycomputername mycomputername.local anothername.local

Bundan sonra, benim computername.local pinging kendinize işaret edecek (aslında, 127.0.1.1 üzerinde çalışan dnsmasq sunucusuna, daha sonra localhost işaret edecek). Ağınızdaki diğer bilgisayarlara girişler ekleyebilirsiniz; böylece bu makinede size görünecek şekilde bilgisayarlara başvuruda bulunabilir. computer1.local computer2.local vb.

192.168.1.31 computer1.local
192.168.1.32 computer2.local

Değişikliklerinizi dnsmasq ile geri almazsanız, bu ek girişleri sonra ekleyebilirsiniz localhost, fakat silme veya değiştirme localhost giriş kendisi. Yani böyle:

127.0.0.1 localhost mycomputername mycomputername.local anothername.local

BTW: Ubuntu masaüstünde resolv.conf dosyasını değiştirmenin doğru yolu görev çubuğunuzdaki ağ yöneticisidir. Ubuntu sunucusunda uygun yol eklemek dns-nameserver Şebeke cihazınızın altındaki girişleri /etc/network/interfaces ve yeniden başlatın ya da yapın ifdown eth0 && ifup eth0. Uyarı olarak /etc/resolv.conf belirtir, doğrudan değiştirmez, dinamik olarak yazılır /etc/network/interfaces ayarlar.


2
/etc/hosts joker karakterlere izin vermez, her yeni sürüm için güncellemeniz gerekir .local alan, bu yüzden insanlar yerel çözüm için bile dnsmasq kullanıyorlar.
Dmitri

0

Muhtemelen avahi-daemon, "yerel" alan adını kullanıyor. Görmek:

https://unix.stackexchange.com/questions/352237/avahi-daemon-and-local-domain-issues


Süper Kullanıcıya Hoşgeldiniz! Katkınız için teşekkürler. Referans için bağlantıyı sağlamak yararlıdır, ancak ayrıca temel bilgileri dahil et yayında. Lütfen cevabını düzenle bu yüzden bu bilgiyi içerir. Ayrıca almak isteyebilirsiniz Tur ve oku Nasıl cevap sayfasında, bu siteyi daha iyi tanımak için.
robinCTS
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.