Rute TLD lengkap (* .dev misalnya) ke 127.0.0.1

29

Untuk tujuan pengembangan, saya ingin semua permintaan DNS ke .dev TLD untuk diteruskan ke PC saya sendiri.

File host tidak cukup. Saya menggunakan banyak domain dan juga beberapa subdomain. Saya harus menambahkan baris untuk setiap kombinasi.

Saya telah membaca bahwa forwarder DNS seperti DNSmasq dapat digunakan untuk melakukan pekerjaan itu (misalnya seperti yang dijelaskan di sini ). Juga perangkat lunak ini sudah diinstal pada Ubuntu 12.10.

Masalahnya adalah saya gagal melihat bagaimana dan di mana saya harus mengkonfigurasi DNSmasq, yaitu di mana saya harus meletakkan baris ini:

address=/dev/127.0.0.1
Roel van Duijnhoven
sumber
1
Anda mungkin tidak ingin menggunakannya .devsaat Google mengambilnya. Saya masih meneliti untuk apa mereka akan menggunakannya dan apakah mereka berencana untuk menghubungkan orang biasa atau hanya karyawan, tetapi Anda mungkin tidak ingin mengarahkan semua akses jika itu yang pertama, kecuali ini murni kotak uji yang tidak akan pernah terhubung ke host eksternal.
trysis

Jawaban:

18

Dnsmasq mandiri lengkap (DHCP dan server DNS) tidak diinstal secara default di Ubuntu 12.04 dan 12.10, tetapi paket yang disebut dnsmasq-base diinstal secara default di Ubuntu Desktop 12.04 dan 12.10. Paket dnsmasq-base berisi biner dnsmasq dan digunakan oleh NetworkManager.

Untuk melakukan apa yang Anda inginkan, Anda perlu menggunakan dnsmasq sebagai server DNS caching. Kamu butuh:

  • Instal dnsmasq sudo apt-get install dnsmasq
  • Ubah pengaturan jaringan Anda, sehingga komputer Anda menggunakan dirinya sendiri saat dns server.
  • Buat perubahan pada file konfigurasi:

Buat /etc/dnsmasq.d/dev-tlddengan konten ini:

local=/dev/

address=/dev/127.0.0.5

Perintah pertama mengatakan *.devpermintaan tidak dapat diteruskan ke server DNS Anda yang sebenarnya. Yang kedua mengatakan *.devresolve ke 127.0.0.5yang localhost.

  • Mulai ulang layanan dnsmasq (bukan manajer jaringan)
Javier Rivera
sumber
Terima kasih! Sangat membantu bahwa saya mengetahui bahwa hadiah DNSMasq bukanlah yang sebenarnya. Setelah menginstal paket lengkap dan mengkonfigurasi dengan cara yang saya jelaskan sebelum saya mulai bekerja. :)
Roel van Duijnhoven
1
Saya lebih suka jawaban lain untuk instalasi desktop terbaru. Untuk instalasi desktop terbaru Anda akan menjalankan dua instance dnsmasq dengan cara ini. Jawaban Anda bisa sangat berguna dalam pengaturan non-NetworkManager, yang lebih lama (tidak menggunakan dnsmasq) atau bahkan instalasi server!
gertvdijk
Yap, jawaban lain adalah yang terbaik sejak Ubuntu 12.10.
BenjaminRH
21

Di Ubuntu 12.10 atau lebih baru Anda dapat melakukan ini dengan dnsmasq yang dijalankan oleh NetworkManager.

  1. Buat direktori mkdir /etc/NetworkManager/dnsmasq.djika belum ada.

    sudo mkdir /etc/NetworkManager/dnsmasq.d
    
  2. Lemparkan baris berikut ke dalam /etc/NetworkManager/dnsmasq.d/dev-tld.

    address=/dev/127.0.0.1
    
  3. (Ubuntu 12.10) Mulai ulang NetworkManager.

    sudo service network-manager restart
    
  4. (Ubuntu> 13,04) Mulai ulang Dnsmasq.

    sudo service dnsmasq restart
    
  5. Nikmati kehebatannya.

masukkan deskripsi gambar di sini

jrg
sumber
1
Berkat AbrahamVanMembantu tautan ke wiki lengkung tentang cara melakukan ini.
jrg
Setelah mengikuti langkah Anda masih saya bisa melihat "host tidak dikenal" setelah menjalankan ping. Apakah saya perlu mengkonfigurasi / mengaktifkan DNSMasq di tempat lain? Atau konfigurasikan properti jaringan saya dengan cara yang berbeda? Terima kasih!
Roel van Duijnhoven
Menarik. itu muncul baik untuk saya.
jrg
Ah, @RoelvanDuijnhoven - apakah Anda menjalankan 12.10 atau 12.04? Bekerja dengan baik untuk saya pada jam 12.10.
jrg
Saya menjalankan 12.10. Tetapi saya perlu menyebutkan bahwa saya telah mencoba mengubah beberapa file konfigurasi sebelum mengajukan pertanyaan di sini. Mungkin perubahan ini mengurangi solusi Anda. Namun solusi Javier Rivera berhasil!
Roel van Duijnhoven
1

Berikut ini berfungsi untuk saya di Ubuntu 16.04:

  1. Memasang dnsmasq

    sudo apt-get -y install dnsmasq
    
  2. Edit dnsmasq.conffile:

    sudo nano /etc/dnsmasq.conf
    
  3. Tambahkan perintah Anda:

    address=/dev/127.0.0.1
    

    Untuk wild card (*) maka Anda dapat menggunakan dot (.) Lalu dnsmasq untuk menyelesaikan WHATEWER_YOU_PUT_HERE.yourmachine.yourdomainke ip yang sama. Misalnya,address=/.localhost.dev/127.0.0.1

  4. Mulai ulang layanan dnsmasq:

    sudo /etc/init.d/dnsmasq restart
    
Jeril
sumber
1

Baru saja menginstal 19,04 baru dan satu-satunya cara saya membuatnya berfungsi adalah menonaktifkan systemd-resolveddan NetworkManagermenggunakan dnsmasqsebagai gantinya untuk DNS. NetworkManagermemiliki dukungan bawaan untuk dnsmasqdan dnsmasq-basepaket diinstal secara default.

Saya menunjuk beberapa domain untuk berbagai VMS seperti *.customerX.testuntuk 192.168.33.10dan *.productY.testuntuk 192.168.33.20dan sebagainya. Saya tidak akan menggunakan *.devlagi melainkan sebagai salah satu domain tingkat atas yang dicadangkan .

Larutan

  1. Nonaktifkan systemd-resolved

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service
    sudo rm /etc/resolv.conf
    
  2. Edit /etc/NetworkManager/NetworkManager.confuntuk digunakan dnsmasquntuk DNS.

    [main]
    dns=dnsmasq
    
  3. Masukkan dnsmasqkonfigurasi/etc/NetworkManager/dnsmasq.d/test-tld.conf

    address=/test/127.0.0.1
    address=/customerX.test/192.168.33.10
    
  4. dan akhirnya restart NetworkManageryang akan menghasilkan yang baru/etc/resolv.conf

    sudo systemctl restart network-manager.service
    
domo
sumber