我们可以使用 iptables 以非透明模式 (3128) 将 DNS (tcp/udp) 请求重定向到 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 相关的 squid 指令的示例。我并不是说它们符合我的目的:
positive_dns_ttl
negative_dns_ttl
dns_nameservers 8.8.8.8 8.8.4.4
udp_incoming_address
如果无法做到这一点,我接受替代方案
Squid 不是 DNS 代理,不接受 DNS 请求。
查看您突出显示的指令的文档,很明显这些是用于内部设置的,与外部客户端访问无关:
positive_dns_ttl
negative_dns_ttl
dns_nameservers
udp_incoming_address
在明确回应您的最后一句话/问题时,没有其他方法可以将 DNS 流量定向到 Squid 代理,因为 Squid 不代理 DNS 流量。
进一步阅读
我一直在思考这个问题,并试图猜测你真正想要解决的问题。您确实意识到虽然 Squid 不代理 DNS 请求,但所有标准 DNS 服务器都这样做?我可以举的例子包括 Dnsmasq 和 Bind。