dnsmasq 將不存在的子域指向本地 IP
有一個特定的遠端子域
mymachine.home.com
,其 IP 一直在更改,我需要更新 DNSMasq 以使其正確解析。但我測試
xxxxxx.home.com
了不存在的 ping,它似乎都想指向我的 NginX 反向代理。(我的很多條目都指向那裡。)如何阻止 DNSMasq 將不存在的子域解析為本地 IP?(它總是相同的IP)
或者
如何告訴 DNSMasq 始終為特定條目使用外部 DNS?
#DNS_Config #Dont use external file for custom dns no-hosts #Use this file for DNS nameservers (contains googles DNS) resolv-file=/etc/resolv.dnsmasq.conf ##CUSTOM_DNS #PING home.com = 192.168.1.210 address=/home.com/192.168.1.210 ##DHCP## ##DHCP_Config #Listen only on eth0 interface=eth0 #DHCP Range 192.168.1.2-127 (12hr lease time) dhcp-range=192.168.1.2,192.168.1.127,12h #RESERVE DNSMasq SERVER IP dhcp-host=00:0c:29:c2:56:bf,192.168.1.149 #Change DEFAULT GATEWAY (Default is same IP as DNSMasq Server) dhcp-option=option:router,192.168.1.1 ##STATIC_DHCP #STATIC IP to 2 MAC Address that WILL NOT be used simultaneously [IE: Laptop with WiFi + LAN] dhcp-host=00:00:00:00:00:00,00:00:00:00:00:00,192.168.1.210 #Assign STATIC IP by MAC dhcp-host=00:00:00:00:00:00,192.168.1.211
您為不存在的域獲得虛假 IP 地址的最常見原因是您的 ISP 將否定答案轉換為其廣告伺服器的地址,以便在您輸入錯誤的網站地址時為您提供更多廣告。這絕對是一種陰暗的做法,但不幸的是,一些 ISP 會這樣做。
您通常可以通過使用不同的上游 DNS 伺服器來解決這個問題,例如OpenDNS (
server=208.67.222.222
andserver=208.67.220.220
) 或 Google (server=8.8.8.8
andserver=8.8.4.4
)。如果您需要 ISP 的伺服器來提供他們自己的客戶服務,您只能在特定域 (server=/myisp.com/203.0.113.1
) 中使用它們。話雖這麼說,在您的情況下,問題在於您的配置沒有按照您的意願執行。
如何阻止 DNSMasq 將不存在的子域解析為本地 IP。
通過不聲明域存在。Dnsmasq 不會用 IP 地址代替不存在的域。
如何告訴 DNSMasq 始終將外部 DNS 用於特定條目。
通過不聲明該主機名的值或包含該主機名的萬用字元。
您的配置中的問題是該行
address=/home.com/192.168.1.210
這是一個萬用字元:它聲明這是該域下所有主機名
192.168.1.210
的地址。home.com
你不想要這個萬用字元,所以刪除它。相反,通過在.
home.com
_ 刪除這一行——你想聲明特定的主機,所以你需要它!或者,如果您不想使用,請保留此行並添加一行指向用 . 聲明的不同文件。或者,如果您想將其全部保留在內部,請將該行替換為home.com``/etc/hosts``no-hosts``/etc/hosts``addn-hosts=/path/to/hosts-file``dnsmasq.conf``host-record=home.com,192.168.1.210
如果你想有一個帶有異常的萬用字元(返回 192.168.1.210 為
xxx.home.com
除 之外的所有mymachine.home.com
,或者總是查詢上游伺服器並僅用 192.168.1.210 代替否定答案),我不認為 dnsmasq 可以做到這一點。