前幾天上網遇到了一個問題,記錄一下解決過程。
什麼問題:
電腦有網,但是卻訪問不了網站。
發現根源:
首先,訪問不了網站,我就想是不是網絡的問題。於是,我就進入 CMD 命令行(Win + R)打算 ping 一下。結果,ping 網關和其它 ip 沒問題,ping 網站的 ip 也沒問題,ping域名不行。於是,就可以知道是有網的,那就只能是 DNS 域名解析的問題了。
問題原因:
原因可能是本地 DNS 無法解析導致的,造成該問題的因素可能有多種,安全防護類軟件、病毒、優化或清理等導致本地 DNS 解析文件被清除或更改,DNS 緩存問題,Winsock 目錄問題等。
解決過程:
- 命令行輸入
nslookup
按回車,就可以看到自己的 dns 服務器相關情況,然後接下來輸入你要 ping 的網站的域名,結果看看是不是請求超時(Time Out)如果是,接着往下走
- 去
C:\Windows\System32\drivers\etc
路徑下用記事本看下 hosts 文件是否被修改。如果 hosts 文件沒有域名強制解析記錄則不用理會,如有請刪除修改。
- 最後在 cmd 輸入:
ipconfig /flushdns
釋放 DNS 緩存。
- 輸入:
netsh winsock reset
重置 Winsock 目錄。
- 重啓再 ping 網站驗證。
相關知識:
(1)DNS 域名解析協議
簡單來說,DNS 協議就是用來將域名與 IP 地址進行相互轉化的。域名就是平時我們用瀏覽器上網時打開的網址,比如: www.baidu.com。但是,實際上在網絡層訪問的是 www.baidu.com 對應的公網 IP ,比如上邊 ping 百度時顯示的 39.156.66.141。他們兩者的轉換就需要用到 DNS 協議。
(2)Winsock 重置
Winsock 是 Windows 網絡編程接口,Winsock 重置就是將 Winsock 恢復到初始化狀態。用以解決由於軟件衝突、病毒原因造成的網絡參數錯誤問題。