在平時(shí)管理、維護(hù)網(wǎng)絡(luò)的時(shí)候,常常會(huì)碰到形形式式的網(wǎng)絡(luò)問題,要想高效解決好這類問題,必須對(duì)各類容易發(fā)生的問題,勤于思考、善于總結(jié),那么日后遇到類似網(wǎng)絡(luò)故障時(shí),就能快速將問題解決好了。本文下面就從通信協(xié)議出發(fā),來總結(jié)一些網(wǎng)絡(luò)問題的排查經(jīng)驗(yàn),希望大家能從中得到幫助!
排除協(xié)議錯(cuò)誤
有一則很奇怪的網(wǎng)絡(luò)問題,本地連接能正常發(fā)送、接受信息包,但無法上網(wǎng)訪問內(nèi)容。對(duì)故障客戶端系統(tǒng)的網(wǎng)卡指定燈狀態(tài)進(jìn)行檢查時(shí),看到網(wǎng)卡設(shè)備的指示燈盡管處于點(diǎn)亮狀態(tài),不過很長時(shí)間始終不閃爍,而指示燈不閃爍,就意味著網(wǎng)卡設(shè)備不存在數(shù)據(jù)交換行為。會(huì)不會(huì)是上網(wǎng)線路存在故障呢?網(wǎng)管員立即通過專業(yè)工具,來對(duì)物理線路連通性進(jìn)行測(cè)試,看到物理線路的連通性很正常。之后,網(wǎng)管員又對(duì)TCP/IP參數(shù)、IE瀏覽器設(shè)置進(jìn)行依次檢查,看到都很正常,那故障客戶端系統(tǒng)為什么無法正常上網(wǎng)呢?在毫無頭緒的情況下,網(wǎng)管員只好上網(wǎng)咨詢相關(guān)網(wǎng)絡(luò)問題答案,偶然之中,看到計(jì)算機(jī)系統(tǒng)的Winsock設(shè)置不正確時(shí),容易引起客戶端系統(tǒng)發(fā)生各種隱性網(wǎng)絡(luò)錯(cuò)誤,這些錯(cuò)誤經(jīng)常會(huì)造成系統(tǒng)上網(wǎng)故障。所以,在嘗試多半方法無法解決上網(wǎng)不正常故障時(shí),不妨考慮對(duì)系統(tǒng)的Winsock設(shè)置進(jìn)行恢復(fù),或許將Winsock設(shè)置恢復(fù)到默認(rèn)狀態(tài)后,各種隱性的網(wǎng)絡(luò)問題就能立即消失了,到時(shí)不能上網(wǎng)故障也就自動(dòng)消失了,下面就是將Winsock設(shè)置恢復(fù)到默認(rèn)狀態(tài)的具體實(shí)現(xiàn)步驟:
首先依次選擇“開始”|“運(yùn)行”命令,切換到系統(tǒng)運(yùn)行對(duì)話框,在其中執(zhí)行“cmd”字符串命令,彈出系統(tǒng)MS-DOS工作窗口。在該窗口命令提示符下,輸入“netsh winsock reset”字符串命令,確認(rèn)后返回如圖1所示的結(jié)果信息,本地系統(tǒng)的Winsock設(shè)置就能自動(dòng)恢復(fù)到默認(rèn)狀態(tài)了,再重新啟動(dòng)一下Windows系統(tǒng)。等到系統(tǒng)啟動(dòng)穩(wěn)定后,重新進(jìn)行上網(wǎng)訪問測(cè)試操作,相信之前發(fā)生的網(wǎng)絡(luò)問題已經(jīng)自動(dòng)解決了。
修改協(xié)議端口
大家知道,善于使用Windows系統(tǒng)自帶的Telnet協(xié)議功能,可以對(duì)網(wǎng)絡(luò)中的重要主機(jī)進(jìn)行遠(yuǎn)程管理,從而能有效提高網(wǎng)絡(luò)管理效率。然而,該協(xié)議在進(jìn)行遠(yuǎn)程管理工作時(shí),會(huì)使用眾人皆知的23端口,而該協(xié)議端口很容易被惡意用戶偷偷利用,有可能給網(wǎng)絡(luò)管理工作帶來安全麻煩。此外,Telnet協(xié)議在工作時(shí),會(huì)以明文形式傳輸內(nèi)容,通過這種方式傳輸?shù)膬?nèi)容很容易被惡意用戶竊聽或攔截,那怎樣才能確保Telnet協(xié)議的使用安全呢?
首先需要修改Telnet協(xié)議的端口號(hào)碼,讓別人不容易知道。可以逐一點(diǎn)擊“開始”|“運(yùn)行”選項(xiàng),彈出系統(tǒng)運(yùn)行對(duì)話框,輸入“cmd”命令,單擊“確定”按鈕后,彈出MS-DOS工作窗口。在該窗口命令行提示符下,輸入“tlntadmn config port=1001”命令(其中“1001”為新的協(xié)議端口號(hào)碼),如圖2所示,單擊回車鍵后,就能將本地計(jì)算機(jī)的Telnet協(xié)議端口號(hào)碼修改為“1001”了。當(dāng)然,新開啟的協(xié)議端口號(hào)碼不能和本地計(jì)算機(jī)中已啟用的端口號(hào)碼一致,否則Telnet協(xié)議將無法正常工作。日后,當(dāng)別人要使用Telnet協(xié)議與本地系統(tǒng)建立遠(yuǎn)程連接時(shí),必須在本地計(jì)算機(jī)名稱后面加上“:1001”,才能保證Telnet連接創(chuàng)建成功。
其次在安全性要求較高的場(chǎng)合下,盡量使用SSH協(xié)議連接代替Telnet協(xié)議連接。因?yàn)镾SH協(xié)議默認(rèn)以非明文方式傳輸數(shù)據(jù),惡意用戶即使采取技術(shù)措施,中途竊取到了傳輸?shù)臄?shù)據(jù)內(nèi)容,也無法訪問到其中的信息。
停用NetBios協(xié)議
在局域網(wǎng)工作環(huán)境中訪問共享資源時(shí),有可能會(huì)遭遇這么一則十分奇怪的故障現(xiàn)象,那就是本次訪問共享資源是正常的,不過重啟計(jì)算機(jī)系統(tǒng)后,共享訪問就失敗了,再次重啟計(jì)算機(jī)時(shí),共享資源又能順利訪問了,為什么會(huì)發(fā)生這種蹊蹺的故障現(xiàn)象呢,又該怎樣避免如此奇怪的故障現(xiàn)象呢?
在排除上網(wǎng)線路不穩(wěn)定因素外,必須檢查故障計(jì)算機(jī)系統(tǒng)的NetBios協(xié)議狀態(tài),因?yàn)楣蚕碓L問操作能通過兩種協(xié)議模式來進(jìn)行,一是Direct hosting協(xié)議模式,二是NetBios協(xié)議模式。如果共享訪問處于Direct hosting協(xié)議模式狀態(tài)時(shí),局域網(wǎng)中的計(jì)算機(jī)相互之間能直接進(jìn)行共享文件傳輸操作,而共享訪問如果工作在NetBios協(xié)議模式狀態(tài)時(shí),本地計(jì)算機(jī)需要通過137網(wǎng)絡(luò)端口來解析對(duì)方計(jì)算機(jī)名稱,通過138端口號(hào)碼來傳遞通信數(shù)據(jù)包,通過139端口號(hào)碼來傳輸特定的共享文件。WinXP以上版本系統(tǒng),在缺省狀態(tài)下,會(huì)強(qiáng)制共享訪問操作以Direct hosting協(xié)議模式工作,以提高共享訪問速度,不過它也將NetBios協(xié)議模式同時(shí)集成在其中了。當(dāng)我們將共享訪問設(shè)置成NetBios協(xié)議模式時(shí),Windows系統(tǒng)會(huì)智能調(diào)用綁定在網(wǎng)卡設(shè)備上的第一個(gè)IP地址,要是該IP地址與遠(yuǎn)程共享主機(jī)的IP地址不處于相同工作子網(wǎng)時(shí),自然就會(huì)發(fā)生共享訪問失敗的故障。而且每次啟動(dòng)計(jì)算機(jī)系統(tǒng)后,Windows系統(tǒng)會(huì)隨機(jī)選用協(xié)議模式,這樣就會(huì)發(fā)生上面的蹊蹺故障了。
為了避免上面的故障現(xiàn)象,我們可以進(jìn)行如下設(shè)置操作,來停用NetBios協(xié)議,以保證Windows系統(tǒng)每次都使用Direct hosting協(xié)議模式,來訪問局域網(wǎng)中的共享資源:首先依次點(diǎn)擊“開始”|“設(shè)置”|“網(wǎng)絡(luò)連接”命令,彈出網(wǎng)絡(luò)連接列表窗口,用鼠標(biāo)右鍵單擊“本地連接”圖標(biāo),執(zhí)行右鍵菜單中的“屬性”命令,切換到本地連接屬性對(duì)話框,在該對(duì)話框的常規(guī)標(biāo)簽頁面中,選中TCP/IP協(xié)議選項(xiàng),按下“屬性”按鈕,進(jìn)入TCP/IP協(xié)議屬性設(shè)置界面。
其次按下“高級(jí)”按鈕,切換到TCP/IP協(xié)議高級(jí)屬性對(duì)話框,用鼠標(biāo)點(diǎn)選“WINS”標(biāo)簽,彈出如圖3所示的標(biāo)簽設(shè)置頁面,在“NetBios設(shè)置”處,看看TCP/IP協(xié)議上的NetBios工作模式有沒有被選中,如果看到該模式已經(jīng)被正常選中時(shí),應(yīng)該及時(shí)改選“禁用TCP/IP上的NetBios”功能選項(xiàng),確認(rèn)后保存設(shè)置對(duì)話框。日后,本地計(jì)算機(jī)系統(tǒng)通過網(wǎng)絡(luò)訪問共享資源時(shí),就會(huì)一直通過Direct hosting協(xié)議模式來工作,那么共享訪問就能始終穩(wěn)定了。
重置協(xié)議狀態(tài)
在低版本操作系統(tǒng)中,上網(wǎng)下載資源時(shí),速度或許不會(huì)很理想,這可能是低版本操作系統(tǒng)默認(rèn)限制了TCP/IP上網(wǎng)連接數(shù)。為了盡可能地加快下載速度,不少用戶都會(huì)及時(shí)更新Windows XP SP3補(bǔ)丁程序,并安裝可以調(diào)整TCP/IP上網(wǎng)連接數(shù)的補(bǔ)丁程序,確保能夠調(diào)整TCP/IP上網(wǎng)連接數(shù)量。不過,在成功安裝好有關(guān)補(bǔ)丁程序,并重新啟動(dòng)計(jì)算機(jī)系統(tǒng)后,再次進(jìn)行上網(wǎng)連接時(shí),有時(shí)會(huì)發(fā)生不能上網(wǎng)訪問的故障,該故障與平時(shí)發(fā)生的無法上網(wǎng)故障幾乎完全相同,要是用戶不清楚故障原因時(shí),很容易在故障排查過程中多走彎路。
事實(shí)上,在成功安裝好相關(guān)補(bǔ)丁程序后,計(jì)算機(jī)之所以會(huì)上網(wǎng)不正常,多半是Windows系統(tǒng)的TCP/IP協(xié)議被損壞,引起了對(duì)應(yīng)通信協(xié)議不能正常處理數(shù)據(jù)信號(hào)。而且,一旦TCP/IP協(xié)議文件被意外損壞時(shí),可能會(huì)存在如下不正?,F(xiàn)象:無法查看本地連接狀態(tài)信息,通過ping命令判斷127.0.0.1地址連通性時(shí),會(huì)發(fā)生“unable to contact IP driver”之類的錯(cuò)誤,利用“ipconfig /all”命令,查看本地計(jì)算機(jī)的上網(wǎng)參數(shù)時(shí),系統(tǒng)也會(huì)返回“an internal error occurred”之類的提示內(nèi)容。所以,當(dāng)計(jì)算機(jī)系統(tǒng)遇到無法訪問網(wǎng)絡(luò)故障時(shí),不妨進(jìn)行上面的檢查、測(cè)試,要是確認(rèn)在無法上網(wǎng)的時(shí)候,同時(shí)有上述現(xiàn)象出現(xiàn),那就意味著TCP/IP協(xié)議文件可能受到了補(bǔ)丁安裝操作的破壞。此時(shí),可以進(jìn)行如下設(shè)置操作,來快速重裝TCP/IP協(xié)議,再正確定義好上網(wǎng)配置,就能恢復(fù)網(wǎng)絡(luò)連接訪問了:
首先逐一選擇“開始”|“控制面板”|“網(wǎng)絡(luò)和共享中心”|“管理網(wǎng)絡(luò)連接”選項(xiàng),切換到網(wǎng)絡(luò)連接列表界面,找到本地連接圖標(biāo)并用鼠標(biāo)右擊之,執(zhí)行快捷菜單中的“屬性”命令,彈出本地連接屬性對(duì)話框。在該對(duì)話框的“常規(guī)”設(shè)置頁面中,將TCP/IP協(xié)議選中,并按下如圖4所示界面中的“卸載”按鈕,將可能受損的TCP/IP協(xié)議成功卸載掉。
接著重新啟動(dòng)計(jì)算機(jī)系統(tǒng),再次進(jìn)入本地連接屬性對(duì)話框,點(diǎn)擊“添加”按鈕,重新安裝一遍TCP/IP協(xié)議,并為TCP/IP協(xié)議配置好合適的工作參數(shù),相信這時(shí)網(wǎng)絡(luò)故障就能被解決了。如果TCP/IP協(xié)議在重新安裝后,還無法讓網(wǎng)絡(luò)訪問恢復(fù)正常時(shí),那多半是故障計(jì)算機(jī)系統(tǒng)中的“tcpip.sys”文件被破壞或刪除了。這個(gè)時(shí)候,我們不妨從網(wǎng)絡(luò)中另找一臺(tái)上網(wǎng)正常的計(jì)算機(jī),展開“Windows\system32\drivers”文件夾窗口,利用優(yōu)盤將正常的“tcpip.sys”文件,復(fù)制粘貼到故障計(jì)算機(jī)的相同文件夾中,之后重啟故障計(jì)算機(jī)系統(tǒng),這樣就能恢復(fù)TCP/IP協(xié)議的工作狀態(tài)了。
取消協(xié)議綁定
如果計(jì)算機(jī)只用來訪問Internet網(wǎng)絡(luò),那么讓網(wǎng)卡只綁定一個(gè)TCP/IPv4協(xié)議就足夠了,其他的通信協(xié)議都是多余的。不過,在缺省狀態(tài)下,Windows系統(tǒng)會(huì)將許多通信協(xié)議集中綁定在網(wǎng)卡設(shè)備上,這樣會(huì)造成網(wǎng)卡設(shè)備在處理數(shù)據(jù)信息時(shí)“分神”,從而容易降低網(wǎng)絡(luò)傳輸速度。為了改善網(wǎng)絡(luò)訪問速度,我們可以將綁定在網(wǎng)卡設(shè)備上的無關(guān)協(xié)議取消掉,讓網(wǎng)卡全力以赴地傳輸數(shù)據(jù),下面就是具體的操作步驟:
首先用鼠標(biāo)右鍵單擊系統(tǒng)托盤區(qū)域處的網(wǎng)絡(luò)連接圖標(biāo),點(diǎn)擊快捷菜單中的“網(wǎng)絡(luò)和共享中心”圖標(biāo),進(jìn)入網(wǎng)絡(luò)和共享中心窗口,按下“管理網(wǎng)絡(luò)連接”按鈕,在其后出現(xiàn)的網(wǎng)絡(luò)連接列表界面中,右擊本地連接圖標(biāo),執(zhí)行快捷菜單中的“屬性”命令,進(jìn)入本地連接屬性對(duì)話框,如圖5所示。
在這里,我們看到Windows系統(tǒng)默認(rèn)綁定了很多無關(guān)的協(xié)議或組件在網(wǎng)卡設(shè)備上,它們?cè)谏暇W(wǎng)訪問過程中根本沒有任何作用,反而還會(huì)影響網(wǎng)卡設(shè)備的工作,最終造成上網(wǎng)訪問速度緩慢。例如,Vista以上版本系統(tǒng),默認(rèn)會(huì)將TCP/IPv6協(xié)議綁定在網(wǎng)卡設(shè)備上,當(dāng)計(jì)算機(jī)上網(wǎng)訪問時(shí),Windows系統(tǒng)會(huì)優(yōu)先使用TCP/IPv6協(xié)議建立上網(wǎng)連接,當(dāng)無法找到有效的TCP/IPv6網(wǎng)絡(luò)連接時(shí),才會(huì)使用TCP/IPv4協(xié)議重新創(chuàng)建連接,這樣上網(wǎng)訪問操作自然會(huì)多走彎路,從而影響網(wǎng)絡(luò)訪問速度。所以,我們可以取消選中這里的“Internet Protocol Version6 (TCP/IPv6)”選項(xiàng),禁止TCP/IPv6協(xié)議干擾上網(wǎng)訪問速度。同時(shí),可以取消選中“QoS Packet Scheduler”選項(xiàng)、“Link-Layer Topology Discovery Responder”選項(xiàng)等,以減輕網(wǎng)卡設(shè)備的工作“壓力”。當(dāng)然,如果本地計(jì)算機(jī)不需要與局域網(wǎng)中的其他計(jì)算機(jī)共享交流時(shí),還能取消選中“File and Printer Sharing for Microsoft Net…”選項(xiàng)。
保證協(xié)議穩(wěn)定
在安裝了新版本操作系統(tǒng)的計(jì)算機(jī)中,通過網(wǎng)絡(luò)傳輸或下載一些容量較大的數(shù)據(jù)信息時(shí),會(huì)發(fā)現(xiàn)數(shù)據(jù)信息傳輸或下載速度明顯不正常,而低版本操作系統(tǒng)通過同樣的網(wǎng)絡(luò),傳輸或下載相同的數(shù)據(jù)信息時(shí),速度卻很正常,那么為什么會(huì)發(fā)生如此蹊蹺的網(wǎng)絡(luò)故障呢,我們?cè)撊绾蝸磉M(jìn)行應(yīng)對(duì)呢?
正常情況下,引起網(wǎng)絡(luò)傳輸或下載速度不快的原因,主要有網(wǎng)絡(luò)傳輸通道堵塞、上網(wǎng)配置不正確、病毒木馬程序搗亂等方面,在對(duì)這些細(xì)節(jié)進(jìn)行逐一排查后,要是還不能提高網(wǎng)絡(luò)傳輸或下載速度時(shí),那多半是新版本系統(tǒng)意外關(guān)閉了TCP/IP協(xié)議的自動(dòng)調(diào)諧功能,因?yàn)樵摴δ軙?huì)影響大塊頭文件的傳輸性能。這個(gè)時(shí)候,不妨進(jìn)行如下設(shè)置操作,來臨時(shí)停用TCP/IP協(xié)議的自動(dòng)調(diào)諧功能,以保證協(xié)議的工作穩(wěn)定性:
首先以系統(tǒng)管理員身份登錄新版本操作系統(tǒng),例如登錄進(jìn)入Windows 7系統(tǒng),逐一選擇“開始”|“程序”|“附件”|“命令提示符”選項(xiàng),并用鼠標(biāo)右擊“命令提示符”命令,點(diǎn)擊快捷菜單中的“以管理員身份運(yùn)行”選項(xiàng),切換到MS-DOS命令行界面。
其次在該工作界面的命令提示符下,輸入字符串命令“netsh int tcp set global autotuninglevel=disable”,單擊回車鍵,返回如圖6所示的結(jié)果信息,這就表明已經(jīng)成功關(guān)閉了TCP/IP協(xié)議的自動(dòng)調(diào)諧功能,之后,再嘗試傳輸或下載容量較大的數(shù)據(jù)信息時(shí),傳輸速度或許就能加快了。