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。

相关内容