Di Ubuntu 14.04 saya menggunakan dnsmasq untuk menyelesaikan domain wildcard example.com ke mesin lokal (komputer desktop di rumah).
Setelah banyak membaca di sekitar saya tidak bisa seumur hidup saya memilah yang sama pada instalasi bersih 18,04.
Yang ingin saya capai saat ini adalah:
- untuk
ping example.com
melakukan ping 127.0.0.1 dan bukan 93.184.216.34; - untuk
ping anysubdomain.example.com
juga melakukan ping 127.0.0.1; - dan untuk
ping google.com
melakukan ping google.com nyata melalui router / IP DNS.
Tentunya ini harus sederhana, bahkan sepele?
Tapi saya bingung. Saya bisa mendapatkan penyelesaian example.com tetapi hanya dengan mengorbankan yang lainnya.
Bagaimana saya bisa melakukan ini?
Jawaban:
Berikut langkah-langkah untuk ubuntu 18.04. Ini agak lama karena
systemd-resolved
tidak berfungsi dengan baikNetworkManager
saat dikonfigurasikandnsmasq
.Namun saya tetap merekomendasikan mulai
dnsmasq
dariNetworkManager
, karena perubahan konektivitas jaringan (WIFI, kabel, ...) akan ditangani secara transparan.Aktifkan dnsmasq di NetworkManager
Edit file
/etc/NetworkManager/NetworkManager.conf
, dan tambahkan barisdns=dnsmasq
ke[main]
bagian, itu akan terlihat seperti ini:Biarkan NetworkManager mengelola
/etc/resolv.conf
Konfigurasikan
example.com
Reload
NetworkManager
dan pengujianNetworkManager harus dimuat ulang agar perubahan diterapkan.
Kemudian kami dapat memverifikasi bahwa kami dapat menjangkau beberapa situs biasa:
Dan terakhir, verifikasi bahwa
example.com
dan subdomain diselesaikan sebagai127.0.0.1
:sumber
/etc/resolv.conf
poin untuk/run/systemd/resolve/stub-resolv.conf
secara default.Pertama-tama pastikan
/etc/NetworkManager/NetworkManager.conf
baris berikut tidak ada atau dikomentari:Mulai kembali NetworkManager:
Pastikan dnsmasq yang dikontrol NetworkManager tidak berjalan lagi, baik dengan mematikan proses atau me-reboot sistem Anda.
Kemudian instal dnsmasq:
Tambahkan yang berikut ke
/etc/dnsmasq.d/example.com
:Mulai ulang dnsmasq:
Sekarang Anda harus memiliki pengganti wildcard dns untuk example.com.
sumber
sudo apt install dnsmasq
memberikan kesalahan "gagal membuat soket pendengaran untuk port 53: Alamat sudah digunakan". Saya tetap melanjutkan sampai akhir kalau-kalau langkah selanjutnya diselesaikan itu, tetapi tidak dan ini tidak berhasil.Ini tidak akan sesederhana mengedit file host. Anda memiliki dua pilihan:
Proxy DNS python ini yang akan menangani wildcard di / etc / hosts
Menggunakan DNSmasq
sumber
netstat -tulpn
untuk memeriksa apa yang menggunakan porta? EDIT: Nevermind, melihat jawaban yang diterima. masalahnya adalah systemd-resolving.