DNS解析
1、本地快取中查詢
透過在cmd中輸入命令:ipconfig /displaydns檢視本地快取 ipconfig /flushdns清除本地快取
下面試著訪問www.baidu.com,看一下解析過程。 使用powershell操作,powershell看起來方便一點:
輸入命令 Get-DnsClientCache,看一下本地的快取
本地快取有百度的ip地址:110.242.68.3 我們在瀏覽器中訪問www.baidu.com, 開啟控制檯,可以看到遠端地址與快取的ip一致
現在清一下快取,輸入Clear-DnsClientCache,再輸入命令列Get-DnsClientCache,返回是空的,如果你的hosts檔案有域名和ip的對映,這裏會顯示出來,不會被清理掉。
現在修改一下host檔案,C:\Windows\System32\drivers\etc\hosts,在裏邊輸入:
198.168.1.1 www.baidu.com
你可以再看一下dns快取:
RecordType:記錄型別 TimeToLive(TTL):存活時間,單位秒
快取中已經有了,然後在瀏覽器中訪問www.baidu.com:
你會發現已經訪問不了了,因為baidu網有做網路安全設定,ip地址改了,認為是在冒充,就拒絕訪問了。但是這也說明了,DNS解析時,是讀取了本地快取。(這一操作,其實就是DNS劫持)
這個時候你把hosts檔案baidu的ip對映刪掉,再清一下dns快取,再重新整理頁面,發現還是無法訪問,原因是,瀏覽器中也會快取DNS。解決方式,關閉當前頁面,重新開啟就好了
2、DNS伺服器查詢
在計算機網路屬性中,會找到本地DNS伺服器地址;
相關名詞
根域名伺服器: ICANN,全球域名最高管理機構,主要工作是維護頂級域名的IP地址,根域名伺服器總共有 13 臺,編號從 A
到 M
頂級域名伺服器:一般指的是.com,.cn,.net,.edu等,域名最後結尾的
本地DNS快取伺服器:一般由運營商提供,現在大部分家庭使用的都是無線路由器,DNS的代理工作也由路由器負責。
查詢域名IP的方法:
1、開啟cmd,輸入命令nslookup www.baidu.com 可查詢對應IP
執行結果如下:
伺服器: xxx.cn //本地伺服器名 Address: 192.168.5.196 //本地伺服器ip 非權威應答: 名稱: www.a.shifen.com Addresses: 240e:e9:6002:15c:0:ff:b015:146f //IPV6地址 240e:e9:6002:15a:0:ff:b05c:1278 110.242.68.3 //IPV4地址 110.242.68.4 Aliases: www.baidu.com
2、透過 ping www.baidu.com 的方式
若要追蹤DNS解析過程,Linux系統可直接透過dig example.com檢視,windows系統可下載dig工具檢視;或者可線上檢視www.diggui.com; 圖片中缺少根域名返回頂級域名伺服器,其實是,網頁中會直接羅列出所有.com伺服器查詢的過程,我只擷取了其中一個伺服器。
總結DNS服務解析過程: 瀏覽器快取 --> 系統快取 --> hosts檔案 --> 域名伺服器
其實,hosts檔案中定義的域名和IP的對映,會自動新增到系統快取中。
DNS劫持
DNS劫持,即駭客攻破了DNS代理,控制了DNS伺服器,這樣就可以修改域名與IP的對映,引導使用者去了釣魚網站,使用者沒有及時發現的話,在頁面的引導下洩露自己的賬號密碼,結果就有點危險了。