MSN無法登錄問題解決過(guò)程中的意外收獲
最近在運維過程(chéng)中,遇到了兩個曆(lì)史悠久(jiǔ)而且(qiě)截(jié)然(rán)不同的疑難問題。但巧合的是,兩(liǎng)個問題殊(shū)途(tú)同歸,最後居然使用了同(tóng)樣的解決方法。為了慶祝送別這兩個問題,也為了和大家共同學習,共同進步,現在把解決問題的詳細過程(chéng)獻出來和大家分(fèn)享。
先對問題進行一下描述啊。第一個問題就是MSN無法登錄!估計很多朋友看到這個題目就要暗自點頭,大有(yǒu)一見如故的感覺。這個問題非常普遍,在我們公司更是由來已久。無論用戶的級別高低,無論使用的MSN版本新舊,總(zǒng)有一部分不和諧的用(yòng)戶會跑來反映自己的MSN無法登錄。按理說(shuō),即時(shí)通訊軟件很不受網管待見,應該學會在夾(jiá)縫裏求生存,登錄方式應該手段繁多,花樣翻(fān)新。什麽封裝成HTTP,HTTPS,什麽通過Web代理,Socks代理,加密代理登錄等等,應該(gāi)讓網管覺(jiào)得MSN登錄真是防不勝(shèng)防,堵不勝堵才好。可MSN倒好,我們還沒想限製呢,它先自己頂不住了。
為了解決這個問題(tí),勞動人民可是想了(le)不少(shǎo)主意,大家上網搜了(le)不少辦法。什麽導入證書(shū)法,什麽在瀏(liú)覽器中勾選自(zì)動檢測設(shè)置啊,這些方法倒也不是一無是處,可奇怪的是有些辦法在張(zhāng)三(sān)的機器上行,在李四的機(jī)器上就不行,搞來搞去(qù),也沒有一個通用的(de)解決辦法。最可(kě)氣的是有些用戶第一天能登錄,第二天(tiān)就不能登錄了,搞得大家每次(cì)登錄MSN時心情都忐忑不安,充滿了憧憬和期待。以前在MSN中配置代(dài)理服務器登錄還是比較靠譜的一招,我們在TMG服務器上也配置了防火牆策略,希望用戶通(tōng)過HTTPS協議(yì)登錄MSN服務器。可(kě)後來(lái)配置Web代(dài)理基本上就毫無作用了。很長一(yī)段時間以來,遇到用戶無法登錄MSN,大家都很頭疼去進(jìn)行(háng)技術支(zhī)持。對比一下吃苦耐(nài)勞,從不挑肥揀瘦的QQ,這MSN跟別人的(de)差距可真不是一星半(bàn)點。
第(dì)二個問題也是一個老問題了,WPAD和WSUS之間有衝突(tū)。這(zhè)個問題聽(tīng)起來挺匪夷所思的,WSUS是幹嘛的,WSUS是用於給客戶機自動更新微軟補丁的;WPAD是幹嘛的,WPAD是自動在客戶機的Web代理或防火牆客(kè)戶端上配(pèi)置代理服務器的。咋一看這兩者之間(jiān)沒什麽關聯,可奇(qí)怪的是隻要一(yī)啟用WPAD,客戶機能自動發現(xiàn)代理服務器的同時會立即和(hé)WSUS服務器失去聯係。為了解決這個奇怪的問題,我們在(zài)微軟特意開了(le)CASE,可微軟抓了不少包進行分析,最後也沒分析出什麽結果。結果呢,這個CASE就(jiù)一(yī)直掛在那了。問題沒解決(jué),我們隻能(néng)在WPAD和WSUS之間選擇Kill一個了,WSUS是負責更新補丁的,安全問題應該優先保(bǎo)證,所以隻能委屈一下WPAD了。
介(jiè)紹完現有的問題後,再來介(jiè)紹一下是(shì)怎麽解決問題的。我們先在(zài)MSN問(wèn)題(tí)上找(zhǎo)到了突破口,查詢微軟Technet三(sān)月份的安全博客時,忽然發現有篇文章介紹MSN登錄原理(lǐ),文章提(tí)到如何希望MSN通過代理服務器登錄服務器,僅(jǐn)僅配置Web代理是不夠的,MSN隻是在完成(chéng)登錄的部分工(gōng)作時使用(yòng)到Web代理(lǐ)!注意,這也就意味著如果僅僅在MSN中配置下(xià)圖所示的(de)Web代理,是無法完(wán)成MSN登(dēng)錄的(de)。
通過在客戶機上抓包分析,發現MSN登錄時要做很多工作,要聯係一些*.microsoft.com的服務器,要聯係一些*.hotmail.com的服務器,還要聯係一些*.live.com和*.msn.com的服務器。當MSN訪問這些服務器時(shí),有部分工作可以由Web代理完成,但有些(xiē)工作是不能通過Web代理的。那剩下的登錄工作應該交給誰呢?答案是Winhttp代理!
Winhttp代理和Web代理是兩套不同的代(dài)理機製,我們(men)在瀏覽(lǎn)器中配置的代理服務器屬於Web代(dài)理,那Winhttp代(dài)理應該(gāi)如(rú)何(hé)配置呢?其實在Win7計算(suàn)機中使用Netsh就可以輕鬆配置,如下圖所示,我(wǒ)們在Win7客戶機中以管理員身份(fèn)運行一個命令提示符,然(rán)後輸入:Netsh Winhttp Set Proxy proxy.chamc.com.cn:80。這條指令的目的就是把我們當前使用的代理服務器proxy.chamc.com.cn設置為Winhttp的代理服務器。
設(shè)置了Winhttp代理後,果然效果不凡,大家的MSN紛紛能夠(gòu)成功登錄了!真是不容易啊,這個該(gāi)死的微軟,居(jū)然畫蛇添足地設計什麽Winhttp代理(lǐ)!群眾中有幾個人懂這個啊,都使用Web代理不就完事了嘛,這些程序員到底有木有腦子啊!大家正在(zài)義憤填膺地譴責微軟,忽然有同事發現新問題了。隻要在計(jì)算機上配置了Winhttp代理(lǐ),就無法訪問WSUS服務器了!
檢查一下計算機(jī)c:\windows\windowsupdate.log文件,可以發現(xiàn)客戶機訪問WSUS服務器時的日誌內容,日誌中有這(zhè)樣的語句DownloadFileInternal failed for http://hq-sus/selfupdate/wuident.cab: error 0x801901f6。這種錯誤提示(shì)和配置WPAD後的錯誤提示完全相(xiàng)同,這種(zhǒng)情況下(xià)我們就提(tí)高警惕了(le),為什麽WSUS和Winhttp代理之間也有這種兼容性問(wèn)題呢?
通過查閱資料,發現原來WSUS客戶端在訪問WSUS服(fú)務器(qì)時,也是要調用Winhttp代理(lǐ)進行通訊的。由於WSUS客戶機和WSUS服務器同在TMG的內(nèi)網,因此WSUS客(kè)戶機應該直接訪(fǎng)問WSUS服務器,根本不(bú)應該客戶機先(xiān)訪問到TMG服務器,然後再通過TMG服務器訪問WSUS服務(wù)器!找到問題之後,怎麽解決呢?其實解決方法也很簡單,在netsh Winhttp中設置旁路列表,告訴(sù)Winhttp代理,訪問WSUS服務器(qì)不(bú)用經過Winhttp代理(lǐ),這樣就可以了(le)。例如WSUS服務器是hq-sus,那麽我們就可以在客戶機上輸入如下圖所示命(mìng)令:Netsh Winhttp set proxy proxy.chamc.com.cn:80 “hq-sus”。這條指令就是通知Winhttp代理,訪問hq-sus服(fú)務器可以直接訪問,不用經(jīng)過Winhttp代理(lǐ)了。如果(guǒ)有(yǒu)內網其他(tā)的服務器要排除,可以用分號隔開
在(zài)客戶(hù)機上配置完Netsh Winhttp後,問題解決了。用戶可以登錄MSN,也不會和WSUS有衝突了,問題貌(mào)似圓滿(mǎn)解決啊!但是,但是,問題好像還留了一個小尾巴。為什麽(me)WSUS和WPAD當(dāng)初會有衝突(tū)呢?難(nán)道也是類似原因導(dǎo)致的。在微軟網站找資料!找啊找,找啊找,嘿嘿,功夫不(bú)負有心人啊(ā),真的被俺找到了。原來Winhttp代理除了可以通過Netsh Winhttp進行配置,還可以通過WPAD進行自動配置。但是,當Winhttp代理通過WPAD下載wpad.dat文(wén)件進行自動(dòng)配置時,由於wpad.dat文件中沒(méi)有對wsus服務器進行排除,因此WSUS客戶端(duān)通過Winhttp代理就不會直接訪問WSUS服(fú)務器。而是需要通過TMG代理服務器去訪問(wèn)WSUS服務器,這樣當然是不行(háng)的!
搞清楚道理,問題就好解決了。隻要在配置WPAD時把內網的WSUS服務器排除之外就OK了。在(zài)TMG服(fú)務器(qì)上打開管理控製台,找到“網絡連接”-“內(nèi)部”-“屬(shǔ)性”中的“Web瀏覽器”標簽,如下圖所示(shì),把(bǎ)WSUS服務器hq-sus添加到直接訪問的列表中,這樣(yàng)WPAD就會通知使用Web代理或Winhttp代理不要通過代理服務器訪問WSUS服務器,如果還有其他的服(fú)務器要排除,參(cān)考這種操作(zuò)就可以。
排除的服務器(qì)可以通過TMG服務器上的wpad.dat文(wén)件體現出來,我們可以使(shǐ)用瀏覽器從TMG服務器上下(xià)載wpad.dat文件查看排除服務器列表。如下圖所示,我們使用記事本打開TMG服(fú)務器上的wpad.dat,可以看(kàn)到WSUS服務器hq-sus已經被排除使用代(dài)理(lǐ)服(fú)務器訪問了。
現在(zài),通過在WPAD中設置排(pái)除服務(wù)器,WPAD可以啟用了。用戶的Winhttp代理可以通過(guò)WPAD自動獲取配置,不(bú)需要通過Netsh Winhttp進行配置。現在,用戶登錄MSN,訪問WSUS服務器都沒有問題了,非常和(hé)諧。從這個問題中,我們可以得出兩個結論:第一是不要迷信微軟,微軟(ruǎn)的(de)產品之間也會有兼容性問題;第二是一定要相信微軟,問題最終還(hái)是(shì)可以(yǐ)解決的。
關鍵詞:MSN無法登錄
閱讀本文後您有什麽感想? 已有(yǒu) 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0