squid 的 DNS 问题

squid 的 DNS 问题

我在设置 squid 时遇到了 DNS 问题。我还尝试dns_nameservers在 squid.conf 中使用指令指向 DNS 服务器。我遇到过这样的情况:www.example.com 应该连接到互联网,而 foo.example.com 应该连接到内部域。从我的客户端,当我尝试 ping foo.example.com 时,它会获取正确的 IP,但我的浏览器上出现此错误:

Unable to determine IP address from hostname foo.example.com  
The DNS server returned:  
Name Error: The domain name does not exist

我知道我的客户端指向了正确的 IP(因为 ping 工作正常),但我很好奇为什么 squid 会尝试连接到公共 example.com。

答案1

我读过的文档表明,默认情况下,Squid 从文件 /etc/resolv.conf 中获取名称服务器。但是,这对我来说不起作用。虽然操作系统 (Debian) 本身可以解析 IP,但 squid 却在抱怨。我做了以下更改并使其正常工作:
/etc/nsswitch.conf:
hosts: files dns
/etc/hosts:
<ip_of_server> foo.example.com

我仍在试图弄清楚为什么 squid 不从 /etc/resolv.conf 中获取名称服务器。

答案2

客户端使用哪个DNS服务器?客户端能正确解析对squid影响不大。

当使用代理时,服务器会进行 DNS 解析,因此客户端的 DNS 解析并不重要;它只需要能够解析代理的地址。

您能从 squid 服务器 ping foo.example.com 吗?如果不能,那么客户端和服务器肯定使用不同的 DNS 服务器,或者它们被提供给该区域的不同视图。

相关内容