làm cho dnsmasq chỉ nghe trên một giao diện


2

Tôi có dnsmasq chạy trên mâm xôi pi w / Raspbian. Pi có một thanh wifi trên wlan0 và được kết nối với mạng / internet cục bộ trên eth0. Mục tiêu của tôi là để dnsmasq giải quyết tất cả các máy chủ thành IP tĩnh của pi chỉ cho các kết nối wifi. Đây là dnsmasq.conf của tôi

address=/#/192.168.42.1
interface=wlan0

Tuy nhiên, bây giờ, khi tôi ssh đến pi qua eth0 và ping google.com, nó cũng phân giải thành 192.168.42.1. Có lẽ đó là vì điều này (từ trang người đàn ông):

Dnsmasq tự động thêm giao diện loopback (cục bộ) vào danh sách các giao diện sẽ sử dụng khi sử dụng tùy chọn --interface

Nếu vậy, làm thế nào tôi có thể làm cho nó để dnsmasq chỉ nghe các kết nối wifi?

Giải pháp khắc phục

Đối với mục đích của tôi, logic là ổn: "Nếu cáp ethernet được cắm, hãy tắt dnsmasq. Nếu rút cáp ethernet, hãy bật lại ".

Do đó, tôi đã sử dụng ifplugd để quản lý quá trình. Trong file /etc/ifplugd/ifplud.action Tôi đã thêm service dnsmasq stop đến trường hợp "lên" và service dnsmasq start đến trường hợp "xuống". Thành công trọn vẹn!

Câu trả lời:


1

thay vào đó hãy thử

except-interface=eth0

để tránh dnsmasq nghe eth0


1

Bạn đã đi về điều này một cách sai lầm. dnsmasq isn lỗi ở tất cả.

Hầu hết các trình phân giải DNS trên Linux sử dụng /etc/resolv.conf. Những gì được định nghĩa là có độc lập giao diện. Thực tế, nó phải là: Bạn không biết giao diện và tuyến đường nào sẽ thực hiện trừ khi bạn có địa chỉ IP dạng số.

Vì vậy, về cơ bản những gì bạn muốn không thể được thực hiện.

Tất nhiên, trừ khi nó thực sự có ý nghĩa đối với máy chủ dnsmasq, nhưng các máy khách WiFi hoặc bất cứ thứ gì. Trong trường hợp đó, bạn cần xóa phản hồi DNS cục bộ khỏi resolv.conf và làm cho nó sử dụng ngược dòng (bộ định tuyến, ISP, Google DNS, OpenDNS, ...) của bạn trực tiếp.

Một điển hình resolv.conf có thể trông như thế này khi sử dụng Google DNS:

nameserver 8.8.8.8
nameserver 8.8.4.4

Cảm ơn bạn đã giúp đỡ. Tôi không chắc là tôi hiểu ý của bạn là gì "Trừ khi, tất nhiên, đó thực sự không phải là ý nghĩa của máy chủ dnsmasq, mà là các máy khách WiFi hoặc bất cứ thứ gì." Tôi chắc chắn rằng những gì tôi muốn làm là có thể bởi vì tôi đã làm nó trước đây. Thật không may, tôi không còn có quyền truy cập vào thiết bị đó mặc dù. Hành vi dường như có liên quan đến dnsmasq bởi vì khi nó chạy /etc/resolv.conf được đặt thành nameserver 127.0.0.1 bởi resolvconf và khi nó không chạy dòng đó đọc nameserver 192.168.1.254. Không nên dnsmasq biết yêu cầu đến từ giao diện nào?
owise1

Chắc chắn nó biết yêu cầu đến từ đâu. Nó chỉ là nó luôn luôn đến từ lo khi đang sử dụng nameserver 127.0.0.1.
Daniel B

1
Những gì bạn muốn là để tránh bất cứ điều gì đang đặt máy chủ tên của bạn thành 127.0.0.1 trong độ phân giải. Nó có thể là dnsmasq làm điều đó theo mặc định trừ khi bạn sử dụng tùy chọn không.
qasdfdsaq
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.