这雨(Web代理自动发现)协议使您可以轻松地在网络中的客户端上配置代理设置。 WPAD背后的想法是,客户端可以使用DHCP和/或DNS在网络上找到具有带有代理设置的PAC配置文件的网络服务器(https://yourdomain/wpad.dat
)。
内容:
创建代理自动发现文件(WPAD.DAT)
特别pac(代理自动配置)文件描述了使用代理的规则。 PAC文件预定义的名称是wpad.dat。该文件包含确定客户端连接到特定资源(HTTP,HTTPS或FTP)或直接访问特定资源时必须使用代理服务器的规则。
JavaScript语法在wpad.dat文件中使用。您可以设置默认的代理服务器地址,以及客户何时(或不应该)使用代理进行连接的不同例外和规则。
让我们看一个简单的wpad.dat语法示例:
function FindProxyForURL(url, host) { if (shExpMatch(host, "127.0.0.1" )) {return "DIRECT";} if (shExpMatch(host, "*/localhost*" )) {return "DIRECT";} if (isInNet(host, "192.0.0.0", "255.0.0.0")) {return "DIRECT";} if (isInNet(host, "10.0.0.0", "255.0.0.0")) {return "DIRECT";} // Dedicated proxy for a specific IP network if (isInNet(myIpAddress(), "172.15.1.0", "255.255.255.0")) {return "PROXY prx2.woshub.com:8080";} if (dnsDomainIs(host, "*.corp.woshub.com")) {return "DIRECT";} // Local addresses to be accessed directly if ( shExpMatch(url,"https://*.woshub.com") || shExpMatch(url,"https://*.woshub.com") || shExpMatch(url,"ftp://*.woshub.com") ) return "DIRECT"; // If the URL does not contain dots in the address, the client should access it directly. if (isPlainHostName(host)) {return "DIRECT";} if (shExpMatch(host,"bank.example.com")) {return "DIRECT";} // Use a separate proxy server to access a specific wildcard domain if (shExpMatch(url,"*.microsoft.com*")){return "PROXY prx2.woshub.com:8080";} //a default proxy server address return "PROXY proxy.woshub.com:3128"; }
PAC文件通常由单个文件组成Findproxyforurl根据请求的URL将代理地址返回客户端的功能。在这种情况下,返回“直接”指令表示应使用直接连接(无代理)访问这些IP地址和域。如果客户端访问的网站与WPAD文件中的任何规则不匹配,则默认代理服务器(PROXY proxy.woshub.com:3128
)用于访问它。
您可以使用任何流行的代理服务器,例如鱿鱼或3proxy。
您可以将PAC文件用作内容过滤的简单手段,以拒绝访问某些网站或防止使用s的域访问域。
proxy_empty = "PROXY 127.0.0.1:3128"; // a link to an non-existing proxy
if ( shExpMatch(url,"*://twitter.com/*")) { return proxy_empty; }
if ( shExpMatch(url,"*://spam.*")) { return proxy_empty; }
if ( shExpMatch(url,"*doubleclick.net/*")) { return proxy_empty; }
不同的OS版本对PAC文件的最大尺寸有限制。对于Windows,WPAD.DAT文件的大小不得超过1 MB。
将WPAD.DAT放在您本地网络中的HTTP Web服务器上,并允许所有用户阅读它。您可以使用基于Linux的(NGINX,APACHE,LIGHTTPD)或基于Windows(IIS或基于PowerShell的简单HTTP服务器)Web服务器。
在此示例中,我将在域控制器上的IIS Web服务器上发布WPAD.DAT。复制wpad.dat到C:inetpubwwwroot。
如果您的网络上有非域客户端,请在IIS文件夹上授予IUSR和IIS AppPooldeFaultAppPool读取的权限。
打开IIS经理(inetmgr
), 选择哑剧类型在IIS网站设置中,并添加一种新类型:
- 文件名扩展名:
.dat
- MIME类型:
application/x-ns-proxy-autoconfig
重新启动IIS。
在DHCP或DNS中配置WPAD记录
现在,您需要配置DHCP服务器或DNS记录以供客户端发现PAC文件。
如果使用DHCP服务器,则可以使用选项为客户端设置WPAD地址252。在此示例中,在Windows Server上运行的DHCP:
- 打开DHCP控制台(
dhcpmgmt.msc
),单击IPv4部分,然后选择设置预定义的选项; - 点击添加并添加带有以下选项的条目:
姓名:WPAD
数据类型:string
代码:252
- 单击确定并指定WPAD主机的地址(
https://wpad.woshub.com
)。 - 然后打开范围选项并启用252滴选项(或配置设置服务器选项部分)。
然后创建一个或CNAME DNS记录雨在您的域中名称。
如果使用Active Directory,请注意,默认情况下,Microsoft DNS服务器会阻止WPAD和ISATAP名称的使用。您可以通过运行命令::来检查一下
dnscmd mun-dc02 /info /globalqueryblocklist
要允许这些名称在DNS中使用,请运行此命令:
dnscmd mun-dc02 /config /enableglobalqueryblocklist 0
您可以清除列表:
dnscmd /config /globalqueryblocklist
并添加ISATAP的记录:
dnscmd /config /globalqueryblocklist isatap
对所有DNS服务器进行相同的更改。
然后创建一个名称的记录雨这指向WPAD文件所在的Web服务器。您可以在DNS Manager中手动创建A唱片(dnsmgmt.msc
)或使用add-dnsserverresourcerecorda powershell cmdlet:
Add-DnsServerResourceRecordA -Name wpad -IPv4Address 192.168.13.10 -ZoneName woshub.loc -TimeToLive 01:00:00
现在,您需要配置浏览器以在启动时自动接收PAC文件。为此,启用自动检测设置IE设置或设置中的Windows代理设置(MS-SETTINGS快速URI命令:ms-settings:network-proxy
)。
您可以使用小组政策选项用户配置 - >首选项 - >控制面板设置 - > Internet设置- >新 - > Internet Explorer 10。
了解有关如何使用GPO配置代理服务器设置的更多信息。
现在,客户端设备上的浏览器将在加载时查找DNS中的WPAD条目(或从DHCP获取)。如果网络中发现了带有WPAD的主机,客户端将下载文件https://wpad.%domain%/wpad.dat
,运行JavaScript代码,然后从PAC文件中应用代理服务器规则。
例如,Windows首先在DNS中搜索WPAD名称,然后通过链接本地多播名称分辨率(LLMNR)搜索,然后使用NetBios(NBNS)。如果禁用了LLMNR和NetBios协议,则仅使用DNS搜索。
您可以在访问Internet时检查浏览器是否使用PAC文件(用于基于铬的Web浏览器:Google Chrome,Opera,Microsoft Edge):
- 打开浏览器然后去
chrome://net-export/
- 选择剥离私人信息然后单击开始登录到磁盘;
- 然后指定JSON文件名来保存数据;
- 点击停止记录;
- 在任何文本编辑器中打开您的JSON文件并搜索
proxySettings
。在此示例中,您可以看到浏览器正在使用wpad.dat的代理设置:"proxySettings":{"effective":{"pac_url":"https://wpad/wpad.dat"},"original":{"auto_detect":true,"from_system":true}}
如果要拒绝在Windows计算机上使用WPAD,请创建一个名为Dord的参数禁用有价值1在注册表密钥中hklmsoftwaremicrosoftwindowscurrentversionInternet settingswinhttp。
使用WPAD(PAC)文件配置代理设置,可以通过通过Windows GPO设置代理来实现额外的灵活性。 WINDOWS,LINUX,MACOS和其他操作系统以及移动设备也支持WPAD。
了解更多: