企业IT管理员IE11升级指南【14】—— IE11代理服务器配置
企业IT管理员IE11升级指南 系列:
【1】—— Internet Explorer 11增强保护模式 (EPM) 介绍
【2】—— Internet Explorer 11 对Adobe Flash的支持
【6】—— Internet Explorer 11面向IT专业人员的常见问题
【11】—— 通过SCCM 2012和WSUS部署Internet Explorer 11
【16】—— 使用Compat Inspector快速定位IE兼容性问题
IE11代理服务器配置
自动检测配置
WPAD代表Web Proxy Auto-Discovery Protocol,是客户端通过DHCP或DNS协议探测代理服务器配置脚本url的一种方式。当IE定位脚本并将脚本下载到本地之后,就可以通过该脚本 来为不同的url选择相应的代理服务器。目前主流浏览器一般都支持WPAD。本文主要介绍IE中WPAD相应的工作原理以及常见WPAD相关的问题的解决 方案。
工作流程
当IE Internet Options连接中配置为自动发现设置时,IE会根据以下方式来探测WPAD.dat文件
- DHCP(252 option)
- DNS A record query
- NetBios
如果DHCP配置了WPAD的地址,IE则使用该地址发送http get请求得到相应的WPAD.dat文件。即使该地址请求失败,IE也不会继续使用DNS探测的结果。
如果DHCP服务器没有提供WPAD信息,DNS探测结果就会被采用。例如用户的计算机名为pc.department.branch.example.com,IE会按照如下url顺序来请求WPAD.dat文件。
- http://WPAD.department.branch.example.com/WPAD.dat
- http://WPAD.branch.example.com/WPAD.dat
- http://WPAD.example.com/WPAD.dat
- http://WPAD.com/WPAD.dat
如果DNS探测仍然失败,IE则通过Netbios来请求WPAD。
当Netbios请求仍然失败的话,IE则会尝试直接发送网络请求。
DHCP WPAD探测逻辑
IE通过调用DhcpRequestParams方法来得到DHCP 252 option。根据MSDN对该方法的描述,该返回结果会在本地缓存起来。
DHCP clients store data obtained from a DHCP server in their local cache. If the DHCP client cache contains all data requested in the RecdParams array of a DhcpRequestParams function call, the client returns data from its cache. If requested data is not available in the client cache, the client processes the DhcpRequestParams function call by submitting a DHCP-INFORM message to the DHCP server。
因此DHCP-INFORM消息只在第一次或者cache被清空的时候被发送。以下是一个DHCP-INFORM消息的示例。
55 10.0.0.101 255.255.255.255 DHCP DHCP:Request, MsgType = INFORM, TransactionID = 0x33276787 56 10.0.0.1 10.0.0.101 DHCP DHCP:Reply, MsgType = ACK, TransactionID = 0x33276787 Frame: Number = 56, Captured Frame Length = 371, MediaType = ETHERNET …… - Dhcp: Reply, MsgType = ACK, TransactionID = 0x33276787 OpCode: Reply, 2(0x02) Hardwaretype: Ethernet HardwareAddressLength: 6 (0x6) …… + MessageType: ACK - Type 53 + ServerIdentifier: 10.0.0.1 - Type 54 + SubnetMask: 255.255.0.0 - Type 1 + DHCPEOptionsVendorSpecificInformation: + DomainName: ctest.local - Type 15 + DomainNameServer: 10.0.0.1 - Type 6 + WPAD: http://consto.ctest.local/WPAD.dat - Type 252 + End:
另外有两点值得注意:
- IE只支持IPv4 DHCP的探测,不支持IPv6 DHCP探测
- IE会尝试通过所有的网络卡来探测DHCP设置。
当IE得到WPAD.dat文件的地址,IE发送http get请求得到WPAD.dat文件,这与通过IE地址栏写入url发送请求一样。一旦WPAD.dat文件返回成功,IE会将该WPAD.dat的地址 存进注册表HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings中。另外将WPAD.dat文件写进IE缓存目录 Temporary Internet Files。当IE再次发送其他网页请求的时候,IE会从注册表中读取WPAD.dat的地址,之后发现缓存中可以找到该地址对应的文件缓存,之后使用该 文件来确定相应的代理服务器。
常见问题
在使用IE过程中有以下两种问题比较常见,
1. DHCP服务器上更新了252 option的WPAD.dat地址,但是IE并没有按照新地址的WPAD.dat文件来使用代理服务器。 这种情况多数是由于IE缓存了WPAD.dat的地址在注册表HKCU\Software\Microsoft\Windows \CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings。
2. WPAD.dat文件内容被更新,但是IE并没有按照的新WPAD.dat文件来使用代理服务器。 这种情况多数是由于IE缓存了WPAD.dat文件,没有去请求新的WPAD.dat的内容。
对于第一个问题,我们可以执行如下步骤来清空不同级别的缓存,
清空DHCP缓存
ipconfig /release
ipconfig /renew
清空DNS缓存
ipconfig /flushDNS
清空注册表WPAD.dat地址缓存
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\SavedLegacySettings
清空IE缓存
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
对于第二个问题,可以从客户端和服务器两个方面去解决,
- 在客户端清空IE缓存。
- 在服务器端为WPAD.dat文件添加cache-control: no-cache http header,这样WPAD.dat文件将不会被IE缓存。即使服务器WPAD.dat内容被频繁更新客户端也会及时得到。不过这样会对性能有一定的影 响,毕竟要多发送请求来得到WPAD.dat文件。
调试方法
如果上述解决方案对你遇到的问题不起作用,也可以尝试通过以下方式来查找问题发生的原因,对于这类问题一般的调试方法是通过Process Monitor+ Networ Monitor, 通过process monitor来追踪注册表访问情况和本地缓存中wpad文件的访问情况,通过network monitor来抓包查看是否发送了wpad相关请求。
Process Monitor
Network Monitor
自动配置脚本
代理自动配置(Proxy auto-config,简称PAC) 是一种网页浏览器技术,用于定义浏览器该如何自动选择适当的代理服务器来访问一个网址。
一个PAC文件包含一个JavaScript形 式的函数“FindProxyForURL(url, host)”。这个函数返回一个包含一个或多个访问规则的字符串。用户代理根据这些规则适用一个特定的代理其或者直接访问。 当一个代理服务器无法响应的时候,多个访问规则提供了其他的后备访问方法。 浏览器在访问其他页面以前,首先访问这个PAC文件。
要使用PAC,我们应当在一个网页服务器上发布一个PAC文件,并且通过在浏览器的代理链接设置页面输入这个PAC文件的URL。
一个PAC文件是一个至少定义了一个JavaScript函数的文本文件。这个函数FindProxyForURL(url, host)有2个参数:url是一个对象的URL,host是一个由这个URL所衍生的主机名。按照惯例,这个文件名字一般是proxy.pac.
虽然大多数客户端无论从HTTP请求返回的MIME类型是什么都能正确处理,但为了完整性和最佳的兼容性,我们应该设置网页服务器将这个文件的MIME类型声明为 application/x-ns-proxy-autoconfig 或者 application/x-javascript-config .
没有什么理由偏爱一种MIME类型多一些,如果有的话,假设 application/x-ns-proxy-autoconfig 相对 application/x-javascript-config 被更多的客户端所支持是可以理解的。因为它被定义在最初的Netscape规范里面,后者是最近才开始被使用。
一个非常简单的PAC文件内容
function FindProxyForURL(url, host)
{
return "PROXY proxy.example.com:8080; DIRECT";
}
调试方法
本地PAC测试
有些情况下PAC文件看上去完全没有起作用,我们可以通过将PAC文件下载到本地,并通过本地文件的方式来访问该PAC文件进行测试。
注意在IE11中默认禁用了本地PAC文件,进行本地PAC文件测试需要更改以下注册表项,
Key: HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ Value: EnableLegacyAutoProxyFeatures Type: REG_DWORD Data: 1
通过alert()调试
通过添加alert()方法可以有效的帮助调试,例如myIpAddress()取得了一个错误的地址,通过alert方法可以很容易的发现类似问题。
if ((host =="proxyinfo.company.com")) { alert("Local IP address is: " + myIpAddress()); }
alert也可以帮助定位脚本语法错误,例如在不同的逻辑路径上进行alert,正确情况下会弹四个对话框,但最终仅仅弹出三个,那么我们可以判断在第三个于第四个alert之间可能存在语法错误。
将PAC方法至于HTML页面中调试
将PAC文件的function FindProxyForURL(url, host)方法置于html页面中然后通过浏览器打开,可以很容易的发现脚本中的语法错误。
<html> < head> < script language="JavaScript">
Insert your ENTIRE PAC file here
< /script> < /head> < body> test < /body> < /html>
PAC文件下载
由于PAC文件通常被放在一个Web服务器上,一个常见的问题就是下载问题,判断是否存在PAC文件下载问题,可以通过浏览器直接输入PAC地址尝试下载来查看是否能够下载成功。
手动配置
手动配置代理是一种常见的代理配置方法,通过在Internet Options – Connections – LAN Settings中指定特定代理地址来实现。
手动配置也经常被用来定位自动配置中代理的问题,例如怀疑自动配置中某代理存在连接问题,可以通过手动直接指定来确定是否可以成功连接。
注意:使用手动配置时要禁用自动配置和配置脚本,否则自动配置会覆盖手动配置。
常见问题
手动配置中一个常见问题,当连接到本地网络上使用的 Internet 协议 (IP) 地址或完全限定域名 (FQDN) 的 Web 服务器时,Microsoft Internet Explorer 或 Windows Internet Explorer 连接通过指定的代理服务器即使在开启了Bypass proxy server for local addresses选项。
但是,如果您连接到 Web 服务器的主机名 (例如,http://webserver) 使用的 IP 地址 (例如,http://10.0.0.1) 或 FQDN (例如,http://webserver。domainname.com)、 跳过代理服务器和 Internet Explorer 直接连接到服务器。
该问题原因在于Bypass proxy server for local addresses仅对host name进行检查,若要跳过某一范围内的 IP 地址或特定域的名称,指定代理服务器例外列表中的地址:
<!--[if !supportLists]-->· <!--[endif]-->在 Internet Explorer 中,在工具菜单上,单击Internet 选项。
<!--[if !supportLists]-->· <!--[endif]-->在连接选项卡上,单击局域网设置。
<!--[if !supportLists]-->· <!--[endif]-->单击高级和异常区域中键入适当的信息。
企业IT管理员IE11升级指南【14】—— IE11代理服务器配置的更多相关文章
- 企业IT管理员IE11升级指南【17】—— F12 开发者工具
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- 企业IT管理员IE11升级指南【16】—— 使用Compat Inspector快速定位IE兼容性问题
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- 企业IT管理员IE11升级指南【15】—— 代理自动配置脚本
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- 企业IT管理员IE11升级指南【1】—— Internet Explorer 11增强保护模式 (EPM) 介绍
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- 企业IT管理员IE11升级指南【2】—— Internet Explorer 11 对Adobe Flash的支持
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- 企业IT管理员IE11升级指南【3】—— IE11 新的GPO设置
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- 企业IT管理员IE11升级指南【4】—— IE企业模式介绍
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- 企业IT管理员IE11升级指南【5】—— 不跟踪(DNT)例外
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- 企业IT管理员IE11升级指南【6】—— Internet Explorer 11面向IT专业人员的常见问题
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
随机推荐
- 搭建Linux运行环境-虚拟机
1.虚拟机软件介绍 虚拟机(Virtual Machina)软件就是一套特殊的软件,它可以作为系统独立运行,也可以运行与系统之上. 若是运行与系统之上的虚拟机软件,在一台电脑(PC或笔记本等)上安装虚 ...
- 高可用Redis(十):Redis原生命令搭建集群
1.搭建Redis Cluster主要步骤 1.配置开启节点 2.meet 3.指派槽 4.主从关系分配 2.环境说明 两台虚拟机,IP地址分别为:192.168.81.100和192.168.81. ...
- (详细)华为P8 GRA-UL00的Usb调试模式在哪里开启的方法
经常我们使用Pc通过数据线连接上安卓手机的时候,如果手机没有开启usb开发者调试模式,Pc则没能够成功检测到我们的手机,有时候我们使用的一些功能较强的应用软件好比之前我们使用的一个应用软件引号精灵,老 ...
- C语言博客作业2--循环结构
1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 对本章学习感觉相对前面的难度有较大提升,而且刚开始对嵌套循环比较陌生,像龟兔赛跑和输出菱形都是用了较长时间才完成,所以我认 ...
- webDriver基本运用
import time from selenium import webdriver import unittest import HTMLTestRunner # webDriver基本应用 cla ...
- 用 pdf.js兼容部分安卓显示PDF在线预览 时,a标签直接链接参数文件不能含中文的解决办法
例子: 项目部署在 Tomcat 上的: <a href="../generic/web/viewer.html?file=doc/register/要显示的文件.pdf" ...
- js 利用canvas + flv.js实现视频流 截屏 、本地下载功能实现,兼容火狐,谷歌;canvas截屏跨域问题,无音频视频流加载不显示问题
项目:物联网监控项目----后台视频流管理(前端实现视频截屏功能) 本文就不同视频源分情况展示: 1 本地视频(项目同目录视频)截屏(canvas.getContext("2d).drawI ...
- 设置SecureCRT的背景色和文字颜色方案
一.对于临时设置,可以如下操作: 首先options -- session - appearance 此处可以设置临时的窗口背景,字体颜色,大小等等,为什么说是临时,是因为只要你关闭连接后,又会恢复. ...
- vmware 虚拟机报错 删除文件夹,可以恢复
- Django By Example 总结
从3月1号到3月23号总共24天完成了三个项目,时间很赶,学的很充实,但是憋的有点难受了,从下周开始就有上机实验了,抽不出来很多时间学课外的东西了.任务进度拖延了一个星期的进度,主要是因为我懒.... ...