為什么ping不通網(wǎng)站 但是卻可以訪問該網(wǎng)站?
今天,在訪問一個網(wǎng)站的時候,我想看看它的ip是多少,就在windows 命令行下去ping了下該網(wǎng)站/主機;ip地址是解析出來了,但是卻發(fā)現(xiàn)請求超時,沒有ping通,當時我就很困惑。然后,我又tracert 該 ip 跟蹤了一下 想看看到底什么問題,最后我發(fā)現(xiàn),當跟蹤到該 ip的時候 請求被拒絕了。突然之間,應該是服務端 設置了相關策略對網(wǎng)絡層icmp 回顯請求報文進行了限制;而訪問網(wǎng)頁用的是 http 協(xié)議,因此會出現(xiàn)此現(xiàn)象 。
ping 的實質(zhì):發(fā)送一個icmp回顯請求報文給目的的主機,并等待回顯的icmp應答。然后打印出回顯報文。
回顯的結(jié)果包括:字節(jié)數(shù) 、 反應時間、TTL(生存時間)
ping不通網(wǎng)站的原因:
一、網(wǎng)絡設置的問題
這種原因比較多出現(xiàn)在需要手動指定IP、網(wǎng)關、DNS服務器聯(lián)網(wǎng)方式下,及使用代理服務器上網(wǎng)的。仔細檢查計算機的網(wǎng)絡設置。
二、DNS服務器的問題
當IE無法瀏覽網(wǎng)頁時,可先嘗試用IP地址來訪問,如果可以訪問,那么應該是DNS的問題,造成DNS的問題可能是連網(wǎng)時獲取DNS出錯或DNS服務器本身問題,這時你可以手動指定DNS服務(地址可以是你當?shù)豂SP提供的DNS服務器地址,也可以用其它地方可正常使用DNS服務器地址。)在網(wǎng)絡的屬性里進行,(控制面板—網(wǎng)絡和拔號連接—本地連接—右鍵屬性—TCP/IP協(xié)議—屬性—使用下面的DNS服務器地址)。不同的ISP有不同的DNS地址。有時候則是路由器或網(wǎng)卡的問題,無法與ISP的DNS服務連接,這種情況的話,可把路由器關一會再開,或者重新設置路由器。
還有一種可能,是本地DNS緩存出現(xiàn)了問題。為了提高網(wǎng)站訪問速度,系統(tǒng)會自動將已經(jīng)訪問過并獲取IP地址的網(wǎng)站存入本地的DNS緩存里,一旦再對這個網(wǎng)站進行訪問,則不再通過DNS服務器而直接從本地DNS緩存取出該網(wǎng)站的IP地址進行訪問。所以,如果本地DNS緩存出現(xiàn)了問題,會導致網(wǎng)站無法訪問??梢栽凇斑\行”中執(zhí)行ipconfig /flushdns來重建本地DNS緩存。
三、IE瀏覽器本身的問題
當IE瀏覽器本身出現(xiàn)故障時,自然會影響到瀏覽了;或者IE被惡意修改破壞也會導致無法瀏覽網(wǎng)頁。這時可以嘗試用“黃山IE修復專家”來修復(建議到安全模式下修復),或者重新IE(如重裝IE遇到無法重新的問題,可參考:附一解決無法重裝IE)
四、網(wǎng)絡防火墻的問題
如果網(wǎng)絡防火墻設置不當,如安全等級過高、不小心把IE放進了阻止訪問列表、錯誤的防火墻策略等,可嘗試檢查策略、降低防火墻安全等級或直接關掉試試是否恢復正常。
五、網(wǎng)絡協(xié)議和網(wǎng)卡驅(qū)動的問題
IE無法瀏覽,有可能是網(wǎng)絡協(xié)議(特別是TCP/IP協(xié)議)或網(wǎng)卡驅(qū)動損壞導致,可嘗試重新網(wǎng)卡驅(qū)動和網(wǎng)絡協(xié)議。
六、HOSTS文件的問題
HOSTS文件被修改,也會導致瀏覽的不正常,解決方法當然是清空HOSTS文件里的內(nèi)容。
七、系統(tǒng)文件的問題
當與IE有關的系統(tǒng)文件被更換或損壞時,會影響到IE正常的使用,這時可使用SFC命令修復一下,WIN98系統(tǒng)可在“運行”中執(zhí)行SFC,然后執(zhí)行掃描;WIN2000/XP/2003則在“運行”中執(zhí)行sfc /scannow嘗試修復。
Tracert 的實質(zhì):利用ICMP數(shù)據(jù)報和IP數(shù)據(jù)報頭部中的TTL值。TTL(Time To Live)是一個IP數(shù)據(jù)報的生存時間,當每個IP數(shù)據(jù)報經(jīng)過路由器的時候都回把TTL值減去1或者減去在路由器中停留的時間,但是大多數(shù)數(shù)據(jù)報在路由器中停留的時間都小于1秒種,因此實際上就是在TTL值減去了1。這樣,TTL值就相當于一個路由器的計數(shù)器。
當路由器接收到一個TTL為0或者1的IP數(shù)據(jù)報的時候,路由器就不再轉(zhuǎn)發(fā)這個數(shù)據(jù)了,而直接丟棄,并且發(fā)送一個ICMP“超時”信息給源主機。Tracert程序的關鍵就是這個回顯的ICMP報文的IP報頭的信源地址就是這個路由器的IP地址。
同時,如果到達了目的主機,我們并不能知道,于是,Tracert還同時發(fā)送一個UDP信息給目的主機,并且選擇一個很大的值作為UDP的端口,使主機的任何一個應用程序都不使用這個端口。所以,當達到目的主機的時候,UDP模塊就產(chǎn)生一個“端口不可到達”的錯誤,這樣就能判斷是否是到達目的地了。
作者:碼農(nóng)編程進階筆記
歡迎關注微信公眾號 :碼農(nóng)編程進階筆記