1. 程式人生 > >企業IT管理員IE11升級指南【14】—— IE11代理伺服器配置

企業IT管理員IE11升級指南【14】—— IE11代理伺服器配置

企業IT管理員IE11升級指南 系列:

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檔案。

如果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升級指南 系列: IE11代理伺服器配置 自動檢測配置 WPAD代表Web Proxy Auto-Discovery Protocol,是客戶端通過DHCP或DNS協議探測代理伺服器配置指令碼url的一種方式。

企業IT管理員IE11升級指南3—— IE11 新的GPO設定

企業IT管理員IE11升級指南 系列: IE11 新的GPO設定 MSDN文件詳細介紹了IE11新增的組策略 Internet Explorer 11 的新組策略設定 在DC上,如果IT管理員不希望安裝IE11但需要配置Int

企業IT管理員IE11升級指南15—— 代理自動配置指令碼

企業IT管理員IE11升級指南 系列: 代理自動配置指令碼 Contents 簡介... 2 設計技巧... 2 處理大小寫... 2 有效利用縮排... 3 處理localhost和回送地址... 3 通過PAC遮蔽網站

企業IT管理員IE11升級指南10—— 如何阻止IE11的安裝

企業IT管理員IE11升級指南 系列: 如何阻止IE11的安裝 希望自行管理更新計劃的企業和組織可以使用 IE11 Automatic Update Blocker Toolkit (自動更新攔截工具)禁止自動更新 Internet Ex

企業IT管理員IE11升級指南17—— F12 開發者工具

企業IT管理員IE11升級指南 系列: F12 開發者工具 簡介 使用 F12 開發人員工具,你可以除錯、測試網頁並加快其速度。無論你是需要微調你的 CSS 佈局還是查詢記憶體洩漏,你都能在此處找到幫助工具。 如果你正在 Inte

企業IT管理員IE11升級指南8—— Win7 IE8和Win7 IE11對比

var blobList = []; document.getElementById("pasteZone").addEventListener('paste', handlePaste, false); function handlePaste(evt) { var fileLis

企業IT管理員IE11升級指南16—— 使用Compat Inspector快速定位IE相容性問題

使用Compat Inspector快速定位Internet Explorer相容性問題 Compat Inspector介紹 Compat Inspector是一個基於JavaScript的,用於快速分析網站在新版本Internet Explorer中相容性問題的,自動化掃描工具。 不同於其他大而

企業IT管理員IE11升級指南1—— Internet Explorer 11增強保護模式 (EPM) 介紹

企業IT管理員IE11升級指南 系列: Internet Explorer 11增強保護模式 (EPM) 介紹 每個Internet Explorer的新版本,都會引入新的安全增強機制,以幫助使用者更安全地瀏覽Internet。增強保護模

企業IT管理員IE11升級指南2—— Internet Explorer 11 對Adobe Flash的支援

企業IT管理員IE11升級指南 系列: Internet Explorer 11 對Adobe Flash的支援 在Windows 8.1上,Adobe Flash被作為一個平臺功能包括在內,可運行於Internet Explorer

企業IT管理員IE11升級指南7—— Win7和Win8.1上的IE11功能對比

企業IT管理員IE11升級指南 系列: Win7和Win8.1上的IE11功能對比 在 HTML5 視訊、觸控支援、裝置和螢幕方向 API、Windows 整合和效能方面,Windows 8.1 上的 Internet Explorer 

企業IT管理員IE11升級指南6—— Internet Explorer 11面向IT專業人員的常見問題

企業IT管理員IE11升級指南 系列: Internet Explorer 11面向IT專業人員的常見問題 1.   Internet Explorer 11 在哪個作業系統上執行? • Windows 8.1 • Windows

企業IT管理員IE11升級指南4—— IE企業模式介紹

企業IT管理員IE11升級指南 系列: IE企業模式介紹 企業模式,執行在Windows8.1 Update和Windows7 Internet Explorer 11上的相容模式,讓網站使用一種模仿Internet Explorer

企業IT管理員IE11升級指南13—— 如何把IEMP遷移到GPP

企業IT管理員IE11升級指南 系列: 如何把IEMP遷移到GPP 背景 Internet Explorer Maintenance (IEM) 從Internet Explorer 10以後就已取消。安裝Internet Expl

企業IT管理員IE11升級指南12—— 相容檢視列表介紹

 企業IT管理員IE11升級指南 系列: 相容檢視列表介紹 為過去版本Internet Explorer設計的網站並不總是能夠在當前版本的Internet Explorer中得到預期的顯示效果。為了解決這個問題,Internet Expl

企業IT管理員IE11升級指南5—— 不跟蹤(DNT)例外

企業IT管理員IE11升級指南 系列: 不跟蹤(DNT)例外 不跟蹤(DNT)簡介 始終傳送“請勿跟蹤”標題 (DNT是Do Not Track header的縮寫),是在IE11新增的GPO設定,可以在以下路徑找到: 管理模板\Wi

企業IT管理員IE11升級指南11—— 通過SCCM 2012和WSUS部署Internet Explorer 11

企業IT管理員IE11升級指南 系列: 通過SCCM 2012和WSUS部署Internet Explorer 11 部署Internet Explorer的先決條件 Internet Explorer 11已預設安裝在Windows

企業IT管理員IE11升級指南9—— IE10與IE11的功能對比

企業IT管理員IE11升級指南 系列: IE10與IE11的功能對比 Contents

Debian設定代理伺服器

注意所有ip都要加上http:// # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases Go in /etc/bashrc no_proxy

用友U9 SOA引領企業IT架構全面升級

管理大師德魯克在其著作《變動中的管理》一書中指出,面對越來越複雜多變的經濟環境,任何一家企業想要實現自己的管理模式和業務架構都離不開IT技術的支援。這是由於大多數的企業核心流程都必須由IT支援,才能實現。這就導致IT應用的效率必然會影響企業運營的效率。因此,經濟危機後優化企業的IT架構和應用是企業復甦的必行

原創IE11驚現無厘頭Crash BUG(三招搞死你的IE11,並提供可重現代碼)!

解決問題 html 窗口 前言 stat 錯誤 ont spa 環境 前言 很多人都知道我們在做FineUI控件庫,而且我們也做了超過 9 年的時間,在和瀏覽器無數次的交往中,也發現了多個瀏覽器自身的BUG,並公開出來方便大家查閱: 分享IE7一個神奇的BUG(不是