Squid 无法解析 RedHat Linux 服务器的本地服务器地址

Squid 无法解析 RedHat Linux 服务器的本地服务器地址

我的 RedHat Linux 服务器上有一个非常奇怪的问题。我安装了一个 Squid 代理服务器,它对 WAN 地址运行良好。但是,当我尝试访问本地 MediaWiki 系统时,我得到了

The requested URL could not be retrieved
The following error was encountered: Unable to determine IP address from host name for ServerName

当我重新启动 squid 时,我可以访问这些本地地址大约 5 分钟,但随后又出现了同样的消息。现在我已验证我可以正常 ping ServerName,因此名称解析实际上不是问题。

我还将这些行添加到我的 squid.conf 中,我在网上找到的所有说明似乎都表明这应该可以解决问题。

acl ServerName dstdomain DomainName
always_direct allow ServerName

(注:为保护无辜者,名字均已更改)

然后我还补充道:

acl MyDomain src 192.168.0.1/255.255.255.192
never_direct deny MyDomain

结果相同(并且 aclParseIpData 发出了一些奇怪的消息,警告我我的网络掩码占用了我指定 IP 的一部分),我认为这确实是一个非常奇怪的消息。

答案1

正确的答案是修改我的 proxy.pac 和 wpad.dat 文件。而不是只说:

function FindProxyForURL(url,host)
{

 return "PROXY 192.168.0.XX:3128; DIRECT";
}

相反,我必须对其进行修改,这样当机器发现它是本地机器的主机名而不是 URL 时,它们就不会尝试使用代理。isPlainHostName 函数运行完美。我使用的代码是:

function FindProxyForURL(url,host)
{
  if(isPlainHostName(host))
        return "DIRECT";

  return "PROXY 192.168.0.XX:3128; DIRECT";
}

我只是不知道如何正确使用 .pac 文件将用户引导至本地地址。

相关内容