1. PAC(Proxy Auto-Configuration)
代理自动配置 (PAC)文件是一个 JavaScript 函数,用于确定 Web 浏览器请求(HTTP、HTTPS 和 FTP)是直接到达目标还是转发到 Web 代理服务器。PAC 文件中包含的 JavaScript 函数定义了以下功能:
function FindProxyForURL(url, host) {
// …
}
自动配置文件应该被保存为一个以.pac为文件扩展名的文件:proxy.pac。
并且MIME类型设置为 application/x-ns-proxy-autoconfig。
该文件包含一个名为FindProxyForURL的函数。下面的例子适用于一个环境,其中内部DNS服务器被设置为只能解析内部主机名,目标是仅对无法解析的主机使用代理:
function FindProxyForURL(url, host) {
if (isResolvable(host)) {
return "DIRECT";
}
return "PROXY proxy.mydomain.com:8080";
}
2 WPAD (Web Proxy Auto-Discovery protocol)
Web Proxy Auto-Discovery Protocol(WPAD)是一种网络协议,用于自动定位网络中的代理服务器配置文件。该协议使得客户机无需手动配置代理设置,便可以自动识别出用于连接到互联网的最佳代理服务器。这不仅减少了网络管理员的工作负担,也为最终用户提供了更为流畅和安全的网络体验。
WPAD主要通过DHCP和DNS寻找代理配置文件(通常以PAC文件形式出现)。
2.1 DHCP方式
WPAD首先尝试通过DHCP获取代理服务器的位置。如果DHCP服务器被相应地配置,它会返回含有PAC文件位置的特定选项。
配置DHCP服务器:
- 登录到DHCP服务器并访问其配置界面。
- 在适用的DHCP作用域内,添加一个新的作用域选项(Option 252)。这告知DHCP客户端PAC文件的位置。
- 在Option 252的值中输入PAC文件的URL,如http://yourserver.com/proxy.pac
2.2 DNS方式
如果通过DHCP未能获取PAC文件位置,WPAD将尝试通过DNS来查找。在这种情况下,浏览器/程序将搜索 URL:
http://wpad.[localdomain]/wpad.dat 或者 http://wpad/wpad.dat 。这要求网络上存在一个相应的DNS记录,指向包含PAC文件的服务器。
- 配置DNS记录:
a. 在负责你的域的DNS服务器上创建一个新的DNS记录。
b. 此记录应该是一个A(主机记录)或CNAME(别名记录),指向托管PAC文件的服务器。记录的主机名应为wpad。例如,如果你的域是example.com,则你需要一个指向PAC文件位置的DNS记录,如wpad.example.com。 - 确保不受阻塞:确保没有任何DNS策略或网络安全设置阻止对名为wpad的DNS查询。
3 参考资料
Proxy Auto-Configuration (PAC) file - HTTP | MDN
Web代理自动发现(Web Proxy Auto-Discovery,WPAD)协议 — Cloud Atlas beta 文档
Web Proxy Auto Discovery Protocol - Cisco
Proxy Auto-Config Files - Cisco
www.ipfire.org - Web Proxy Auto-Discovery Protocol (WPAD) / Proxy Auto-Config (PAC)