我安装了一台服务器(在 ubuntu 中),我将部署 wpad 以自动配置计算机上的代理。我已执行以下步骤:
我已经创建了 3 个文件,因为我从某处读到 IE 仅适用于 .dat(现代版本)和 .da(旧版本),而 Chrome(等)仅适用于 .pac:
proxy.pac wpad.da wpad.dat
内容相同...
function FindProxyForURL(url, host) {
// If the requested website is hosted within the internal network, send direct.
if (isPlainHostName(host) ||
shExpMatch(host, "*.local") ||
isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0") ||
isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0"))
return "DIRECT";
return "PROXY 192.168.0.1:3128";
}
在 Apache 中发布它们,并通过dhcp 选项 252所以我的所有电脑都使用我的 squid 代理
我有两个问题:
我真的需要这 3 个文件吗?
文件内容正确吗?
谢谢
答案1
你应该能够使用一个
.dat
文件。chrome 和 Firefox 都可以使用它。对于 chrome,有一个内置的方便工具可以告诉你使用了哪个 pac 文件,只需使用此 urlchrome://net-internals/#proxy从语法上来说,我认为你应该没问题。从功能上来说,这真的取决于你的需求。
isPlainHostName(host)
如果请求中的主机是“纯”的,则不包含句号;shExpMatch(host, "*.local")
如果请求 URL 以“.local”结尾,
isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0")
则请求主机解析为 IP 的范围是 192.168.0.0-192.168.255.255;
isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0")
与上文相同,只是范围是 127.0.0.0-127.0.0.255。
如果满足上述任何条件,浏览器将不会使用该目的地的代理,而是被告知直接访问。外部域将始终带有句号,例如“.com”等。同样,.local 通常用于内部网络。而 192.168.0.0/127.0.0.0 是相当标准的私人的IP 范围。所有这些规则只是试图避免使用代理调用到内部网站/应用程序。如果不知道您的网络设置或使用代理的原因,我实际上无法提供太多有关配置的建议。如果您只是希望管理互联网浏览,那么它应该可以解决问题。