我已经设置了一个运行 bind 和 squid 的 Ubuntu 服务器。在我的家庭网络中,我设置了一个运行 pi-hole 和 dnsmasq 的 raspi。Dnsmasq 的设置使其能够使用外部 Ubuntu 服务器的 IP 覆盖某些 dns 请求。我希望此服务器上的 bind 将所有进入的 dns 请求指向 squid 代理,这样这些流量就会通过代理,而无需在我的家庭网络中的每个设备上设置代理。基本上,就像所有这些 smartDNS 服务一样。
我无法让它正常工作。dns 服务器工作正常,并返回我的服务器的 IP 地址:
~$ nslookup google.com 123.456.789.111
Server: 123.456.789.111
Address: 123.456.789.111#53
当我在浏览器中设置代理时,它工作正常,Google 会报告123.456.789.111
我的 IP 地址。但是,当我将服务器的 IP 实施到 raspi 的 dnsmasq 规则中时,它似乎不起作用。没有 DNS 请求解析。
我怀疑此问题的根源在于 http(s) 代理使用 connect 方法,而此设置无法做到这一点?
我该如何解决这个问题?有什么办法可以解决这个问题吗?我尝试了一些不同的指南,还尝试了使用 sniproxy 的一键安装 github 脚本。Sniproxy 在此设置下运行良好,但在 https 流量方面,似乎只有 http 可以工作。
我是否需要了解一下 squid 的 peek 和 splice 功能?
过去几周我对此进行了大量研究,但没有找到任何可以利用的东西。任何帮助都非常感谢!
配置
我的 squid.conf 是标准的,除了acl localnet
允许来自我的本地 IP 的流量的条目之外。
我的named.conf:
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
我的named.conf.local:
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
acl "trusted" {
any;
};
include "/etc/bind/zones.override";
命名的.conf.选项:
options {
directory "/var/cache/bind";
forwarders {
2001:4860:4860::8888;
2001:4860:4860::8844;
8.8.8.8;
8.8.4.4;
};
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
allow-query { trusted; };
allow-transfer { none; };
allow-recursion { trusted; };
recursion yes;
};
数据库.覆盖:
$TTL 86400
@ IN SOA ns1 root (
2022100701 ; serial
604800 ; refresh 1w
86400 ; retry 1d
2419200 ; expiry 4w
86400 ; minimum TTL 1d
)
IN NS ns1
ns1 IN A 127.0.0.1
@ IN A 123.456.789.111
* IN A 123.456.789.111
区域.覆盖:
zone "." { type master; file "/etc/bind/db.override"; };