iptables 將 dns 重新導向到代理

iptables 將 dns 重新導向到代理

我們可以使用 iptables 以非透明模式 (3128) 將 DNS (tcp/udp) 請求重新導向到 Squid 代理程式嗎? (squid 代理會理解這一點並處理它嗎?)

重定向 tcp 53 的範例規則(可能是另一個類似的規則):

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i eth1 -p tcp --dport 53 -j REDIRECT --to-port 3128

重定向 udp 53 的範例規則(可能是另一個類似的規則):

注意:Squid“監聽”高 udp 連接埠。範例:36352,指令:netstat -tlunp | grep 魷魚

參考:http://linuxplayer.org/2012/02/why-squid-listen-on-high-udp-port-number

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i eth1 -p udp --dport 53 -j REDIRECT --to-port 36352

PD:這些只是與 DNS 相關的魷魚指令的範例。我並不是說它們符合我的目的:

positive_dns_ttl 
negative_dns_ttl 
dns_nameservers 8.8.8.8 8.8.4.4
udp_incoming_address

如果無法做到這一點,我接受替代方案

答案1

Squid 不是 DNS 代理,不接受 DNS 請求。

查看您突出顯示的指令的文檔,很明顯這些指令用於內部設置,與外部客戶端存取無關:

在明確回應您的最後一句話/問題時,沒有其他方法可以將 DNS 流量定向到 Squid 代理,因為 Squid 不代理 DNS 流量。

進一步閱讀


我一直在思考這個問題,並試著重新猜測你真正想要解決的問題。您是否意識到雖然 Squid 不代理 DNS 請求,但所有標準 DNS 伺服器都會這樣做?我可以引用的例子包括 Dnsmasq 和 Bind。

相關內容