Saya menjalankan Debian Jessie dan saya mencoba mengkonfigurasi dnsmasq sebagai server DNS caching. Saya menggunakan panduan untuk membuat yang berikut ini /etc/dnsmasq.conf
:
listen-address=127.0.0.1
bind-interfaces
domain-needed
bogus-priv
no-hosts
dns-forward-max=150
cache-size=1000
neg-ttl=3600
resolv-file=/etc/resolv.dnsmasq
no-poll
Melakukan sudo service dnsmasq restart
gagal dan itu tidak akan mulai, katakan padaku
Mar 26 17:13:01 user dnsmasq[26743]: dnsmasq: syntax check OK.
Mar 26 17:13:01 user dnsmasq[26746]: dnsmasq: only one resolv.conf file allowed in no-poll mode.
Ok, agak aneh bahwa konfigurasi langsung dari panduan gagal. Saya hanya akan menghapus no-poll
opsi untuk melihat apakah itu berfungsi. Kali ini mulai baik-baik saja, tetapi resolusi DNS jelas gagal. Dokumen relevan:
/etc/resolv.conf
:
nameserver 127.0.0.1
/etc/resolv.dnsmasq
:
nameserver 8.8.8.8
/var/run/dnsmasq/resolv.conf
:
nameserver 127.0.0.1
File ketiga tampaknya menjadi file resolv.conf langsung dnsmasq, karena menambahkan baris nameserver ke dalamnya ketika dnsmasq sudah berjalan menyebabkan resolusi DNS untuk segera mulai bekerja. Jadi sepertinya diabaikan saya /etc/resolv.dnsmasq
. Saya juga mencoba menambahkan baris nameserver ke saya /etc/resolv.conf
dan menghapus resolv-file
baris di /etc/dnsmasq.conf
, tetapi akan ditimpa segera dengan apa yang Anda lihat di atas setelah melakukan sudo service dnsmasq restart
.
Apa yang terjadi dengan dnsmasq dan apakah saya mengkonfigurasi dnsmasq sebagai server DNS caching?
server=8.8.8.8
konfigurasi dnsmasq Anda?no-poll
dasarnya mengatakan untuk mengabaikanresolv-file
. Saat startup, dibutuhkan file mana saja yang lebih baru, sehingga akan ada/etc/resolv.conf
dalam kasus Anda (karena akan ditulis ulang ketika sesuatu berubah).Jawaban:
Tampaknya ada bug dalam skrip start-up untuk
dnsmasq
yang digunakanresolvconf
untuk memecahkan resolver lokal jika antarmuka loopback lokal tidak secara eksplisitexcept
-ed dalam/etc/defaults/dnsmasq
file.Jawaban singkatnya adalah Anda dapat menambahkan ...
untuk
/etc/defaults/dnsmasq
menyelesaikan masalah.Untuk info lebih lanjut, lihat pertanyaan ini ...
/raspberrypi/37439/proper-way-to-prevent-dnsmasq-from-overwriting-dns-server-list-supplied-by-dhcp
sumber
bigjosh benar - kecuali ada pembaruan untuk dnsmasq, dan sekarang ada opsi di
/etc/default/dnsmasq
mana Anda dapat membatalkan hash:sumber
/etc/defaults/dnsmasq
sudahIGNORE_RESOLVECONF=yes
dengan instruksi untuk menghapus komentar untuk menyelesaikan masalah ini, yang tidak.Jangan gunakan
Masukkan server dns ke dnsmasq.conf, seperti
Dan tambahkan ke dnsmasq.conf
sumber
Jika Anda hanya menginginkan server DNS khusus caching dan tidak ada hal lain yang dapat dilakukan dnsmasq, Anda sebaiknya menginstal
lwresd
atauunbound
menggunakan konfigurasi default stock yang memberikan Anda server DNS khusus caching. Kemudian Anda hanya mengatur/etc/resolv.conf
untuk menggunakan "nameserver 127.0.0.1" dan Anda selesai.Yang menyenangkan adalah kedua paket ini tidak dipusingkan dengan apa yang ada di
/etc/resolv.conf
dnsmasq seperti dan dengan demikian solusi IMHO bersih. Anda juga biasanya dapat menghapusresolvconf
paket sehingga tidak ada yang berantakan/etc/resolv.conf
.FYI, dnsmasq menjadi agak rumit, terlalu banyak lonceng dan peluit dan hanya menyebabkan rasa sakit bagi kebanyakan orang lagi. Melanggar KISS dalam buku saya.
sumber
dnsmasq-base
, sepertinetwork-manager
danlibvirt-bin
(jika Anda melakukan KVM), jadi tidak selalu mungkin untuk sepenuhnya menghilangkannya. Dalam hal ini, Anda dapat menghapus/usr/sbin/dnsmaq
dan menjadikannya sebagai tautan keras/bin/true
sehingga selalu berhasil (untuk mengelabui skrip init) Kemudianchattr +i /usr/sbin/dnsmasq
untuk menguncinya agar tidak diperbarui. Saya harus melakukan ini pada beberapa laptop.