Membatasi server DHCP dnsmasq ke satu antarmuka

11

Bagaimana cara saya mengonfigurasi dnsmasquntuk hanya menetapkan alamat eth0, bukan wlan0?

Delan Azabani
sumber

Jawaban:

13

The halaman manual menjelaskan hal itu cukup baik. Jika hanya DHCP yang tidak ingin Anda jalankan wlan0maka Anda dapat menggunakannya --no-dhcp-interface=wlan0. Jika Anda tidak ingin dnsmasq mendengarkan sama sekali wlan0maka Anda dapat menggunakan --except-interface=wlan0.

Jika Anda hanya ingin mendengarkan dnsmasq eth0maka Anda dapat menggunakan --interface=eth0.

Dimana saja
sumber
12

Bagi mereka yang seperti saya bingung mengapa port 53 masih terbuka untuk semua antarmuka terlepas dari opsi yang Anda masukkan untuk membatasi itu. Ada satu opsi lagi yang perlu dinyalakan.

-z, --bind-interfaces On systems which support it, dnsmasq binds the wildcard address, even when it is listening on only some interfaces. It then discards requests that it shouldn't reply to. This has the advantage of working even when interfaces come and go and change address. This option forces dnsmasq to really bind only the interfaces it is listening on. About the only time when this is useful is when running another nameserver (or another instance of dnsmasq) on the same machine. Setting this option also enables multiple instances of dnsmasq which provide DHCP service to run in the same machine.

Jin Chen
sumber
Ini persis seperti hal yang mudah untuk diabaikan tetapi merupakan kunci untuk membuatnya bekerja dengan solusi DHCP lainnya (seperti dalam kasus saya layanan internal QNAP). Seseorang harus mengambil tiga jawaban utama dan menggabungkannya. Ini menyelamatkan hari saya, terima kasih
Danielo515
11

Ini juga dimungkinkan dari file konfigurasi dnsmasq, dan didokumentasikan dalam file contoh Simon Kelley di http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example :

# If you want dnsmasq to listen for DHCP and DNS requests only on
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.
#interface=
# Or you can specify which interface _not_ to listen on
#except-interface=
Stefan Lasiewski
sumber