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