dnsmasq 廣告攔截僅在伺服器端工作

dnsmasq 廣告攔截僅在伺服器端工作

我正在嘗試透過 dnsmasq 建立伺服器端廣告攔截機制,但我只能在伺服器本身上獲得結果,而不是在連接到本機網路的電腦上獲得結果。

首先,我的路由器是預設 DNS 伺服器,因此我必須將所有裝置設定為使用 dnsmasq 伺服器作為主 DNS。當我嘗試訪問我的自架網站之一時,我可以檢查它是否有效:如果我可以在本地訪問它們,那麼 dnsmasq dns 就可以工作。就這一點而言,一切都OK。

然後是廣告攔截部分。我透過在我的伺服器和主電腦上輸入以下命令來檢查封鎖是否有效:

# nslookup doubleclick.net

在伺服器上我得到:

Server:     192.168.1.51
Address:    192.168.1.51#53

Name:   doubleclick.net
Address: 192.168.1.51

所以它在那裡起作用。

在我的電腦上我得到:

Server:     80.67.0.2
Address:    80.67.0.2#53

Non-authoritative answer:
Name:   doubleclick.net
Address: 70.32.146.212

所以這裡不...

我的設定是這樣的:

  • 我設定了 dnsmasq 的配置目錄:

    conf-dir=/usr/local/etc/dnsmasq.d

  • 將檔案 dnsmasq.adlist.conf 放在那裡,其中填充了一個腳本,該腳本從網站獲取廣告伺服器清單並將其編譯為 dnsmasq 可讀條目。

簡而言之,被 dnsmasq 封鎖的網域會從伺服器內部正確重定向,而不是從其他裝置重定向。就像 dnsmasq 無法廣播新新增的網域列表一樣。

我可以提供您喜歡的任何資訊來幫助我解決此問題。它還可能表明此廣告攔截實驗之前的配置錯誤。無論如何,我希望這很容易確定......

我的伺服器是 FreeBSD 9.3

答案1

如果某些內容快取了您的請求並且您沒有刷新 DNS 緩存,則可能會出現此問題。

通常,作業系統會快取 DNS 項目,這使得 DNS 中的變更無法直接看到。

對於 Windows fe,您可以透過類似的方法清除 DNS 快取。

ipconfig /flushdns

答案2

我已經有一段時間沒有使用 nslookup 了,但是這個結果是否意味著名稱解析是針對 80.67.0.2 而不是 192.168.1.51 (我假設是你的路由器)執行的?

我猜想您的電腦不知何故沒有使用您的 dnsmasq 實例來進行名稱解析。

相關內容