18.04'te yerel joker karakter (127.0.0.1) alan çözünürlüğünü nasıl ayarlayabilirim?


18

Ubuntu 14.04'te, yerel makineye (evde masaüstü bilgisayar) wildcard example.com alanlarını çözmek için dnsmasq kullanıyorum.

Etrafımda çok fazla okuma yaptıktan sonra 18.04'lük temiz bir kurulumda hayatım boyunca aynı şeyi çözemiyorum.

Şu anda ulaşmak istediğim tek şey:

  • için ping example.com 127.0.0.1 olup 93.184.216.34 ping için;
  • ping anysubdomain.example.com 127.0.0.1'e ping atmak için ;
  • ve ping google.com gerçek google.com'a yönlendirici / IP DNS üzerinden ping atmak için .

Elbette bu basit, hatta önemsiz olmalı?

Ama çok üzüldüm. Ornek.com'un çözümünü ancak diğer herşeyi kırmak pahasına elde edebilirim.

Bunu nasıl yapabilirim?


1
Neden sadece 14.04'te yaptığınız gibi dnsmasq kurmuyorsunuz?
vidarlo

1
@vidarlo Tabii ki sorumda belirttiğim gibi yaptığım ilk şey buydu. Ancak 14.04'ün aksine "53 numaralı bağlantı noktası için dinleme soketi yaratılamadı: Adres zaten kullanılıyor" hatasıyla sonuçlanır. Kabul ettiğim cevap dnsmasq'ı açıkça yüklemeden iyi çalışıyor.
Nick Rice

Yanıtlar:


30

Ubuntu 18.04 için adımlar. İle yapılandırıldığında systemd-resolvedçok iyi oynamadığı için biraz uzun .NetworkManagerdnsmasq

Oysa ben hala başlangıç tavsiye dnsmasqgelen NetworkManagerağ bağlantı değişiklikleri (WIFI, ... kablolu) şeffaf ele alınacaktır çünkü.

NetworkManager'da dnsmasq'i etkinleştir

Dosyayı düzenleyerek /etc/NetworkManager/NetworkManager.confve satırı ekleyin dns=dnsmasqiçin [main]bu gibi görünecektir, bölüm:

[main]
plugins=ifupdown,keyfile
dns=dnsmasq

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

NetworkManager'ın yönetmesine izin ver /etc/resolv.conf

sudo rm /etc/resolv.conf ; sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf

Yapılandır example.com

echo 'address=/.example.com/127.0.0.1' | sudo tee /etc/NetworkManager/dnsmasq.d/example.com-wildcard.conf

Yeniden yükleme NetworkManagerve test etme

Değişikliklerin etkili olması için NetworkManager yeniden yüklenmelidir.

sudo systemctl reload NetworkManager

Ardından, normal bir siteye ulaşabileceğimizi doğrulayabiliriz:

dig askubuntu.com +short
151.101.129.69
151.101.65.69
151.101.1.69
151.101.193.69

Son olarak example.comve alt alan adlarının şu şekilde çözümlendiğini doğrulayın 127.0.0.1:

dig example.com askubuntu.example.com a.b.c.d.example.com +short
127.0.0.1
127.0.0.1
127.0.0.1

"Systemd-resolved NetworkManager ile çok iyi oynamıyor" ile ne demek istiyorsun?
Sebastian Stark

1
NetworkManager dns = dnsmasq kullandığında, dnsmasq kullanmak için systemd ile çözümlenmiş, otomatik olabileceğini söylemelidir.
pim

1
Teşekkür ederim, bu mükemmel çalıştı! Sana başka bir saat için ödül veremem gibi görünüyor ve burada sabah bir tane gittiğinde şimdi yatağa gidiyorum ve yarın tekrar açtığımda bunu yapacağım.
Nick Rice

2
Muhteşem. Birçok farklı teknik okudum. Sonunda işe yarayan budur.
Redsandro

3
Sistem çözümüne geri dönmeyi tercih edenler için varsayılan olarak /etc/resolv.confişaret eder /run/systemd/resolve/stub-resolv.conf.
Pothi Kalimuthu

2

Öncelikle /etc/NetworkManager/NetworkManager.confaşağıdaki satırda mevcut olmadığından veya yorum yapmadığından emin olun :

dns=dnsmasq

NetworkManager'ı yeniden başlatın:

sudo systemctl restart NetworkManager

İşlemi öldürerek veya sisteminizi yeniden başlatarak NetworkManager kontrollü dnsmasq'in artık çalışmadığından emin olun.

Sonra dnsmasq'i yükleyin:

sudo apt install dnsmasq

Aşağıdakileri şuraya ekleyin /etc/dnsmasq.d/example.com:

address=/example.com/127.0.0.1

Dnsmasq'i yeniden başlat:

sudo systemctl restart dnsmasq

Şimdi ornek.com için joker karakter geçersiz kılmanız gerekir.


1
Bunu çalıştıramadım. Temiz bir minimum kurulumun hemen ardından ("diski sil" seçeneği ile), sudo apt install dnsmasq"bağlantı noktası 53 için dinleme soketi yaratılamadı: Adres zaten kullanılıyor" hatası veriyor. Daha sonraki bir adımın bunu çözmesi durumunda yine de sonuna kadar devam ettim, ama olmadı ve bu işe yaramadı.
Nick Rice

Sonra NetworkManager tarafından başlatılan dnsmasq hala çalışıyordu. Bu yüzden önce devre dışı bırakılmalı, sonunda öldürülmeli ve ancak o zaman dnsmasq paketi kurulmalıdır.
Sebastian Stark

Teşekkürler Sebastian. Ancak pim'in kusursuz çalışan cevabını zaten kabul ettim, bu yüzden artık onunla oynamadan devam edebiliyorum.
Nick Rice

@NickRice Bununla ilgili bir sorun yok, ama belki başkaları denemek istiyor
Sebastian Stark

Evet, tabii Sebastian. İlk önce cevabınızı denedim, çünkü en basitiydi ve tüm ihtiyacı olan ek bir başlangıç ​​adımı ise, o zaman çok iyi bir adımdır.
Nick Rice

0

Bu, hosts dosyasını düzenlemek kadar basit olmayacaktır. Senin birkaç seçeneğin var:

/ Etc / hosts içindeki joker karakterleri işleyecek bu python DNS proxy'si

DNSmasq kullanma


Teşekkürler. DNSmasq sorusuna olan bağlantınız 14.04'te yaptığım şey. Yeni bir 18.04 kurulumunda aynısını yapmak bir bağlantı noktası çakışması nedeniyle çalışmıyor. Yani kutudan başka bir şey yapmak gerekiyor. Python DNS proxy'si için gereken tüm kodlara baktığımda, gerekli olan her şeye inanamıyorum. / Etc / hosts kullanmakta ısrar edenler için, sanırım daha önce dışında değildi.
Nick Rice

netstat -tulpnLimanı ne kullandığını kontrol etmek için yapabilir misin ? EDIT: Nevermind, kabul edilen cevabı gördü. sorun sistemd-çözümdür.
Harikrishnan R
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.