通過 hosts文件配置本地功能變數名稱 概念 DNS: 功能變數名稱系統(Domain Name System),是互聯網的一項服務。它作為將功能變數名稱和IP地址相互映射的一個分散式資料庫,能夠使人更方便地訪問互聯網。 將功能變數名稱映射到對應的IP地址。 互聯網通過IP定位瀏覽器建立連接,但是我們不易區別IP,為了方便用戶辨 ...
通過 hosts文件配置本地功能變數名稱
概念
-
DNS
: 功能變數名稱系統(Domain Name System),是互聯網的一項服務。它作為將功能變數名稱和IP地址相互映射的一個分散式資料庫,能夠使人更方便地訪問互聯網。- 將功能變數名稱映射到對應的IP地址。
- 互聯網通過IP定位瀏覽器建立連接,但是我們不易區別IP,為了方便用戶辨識IP所代表的意義,操作系統會將IP和功能變數名稱進行轉換
- DNS伺服器可以看作註冊表,記錄功能變數名稱及對應的IP。瀏覽器訪問網址時會根據功能變數名稱在此伺服器獲得IP.
-
hosts文件
: 操作系統操作的IP
和功能變數名稱
本地映射文件。- 可以視為DNS server的重寫,一旦查到了指定的功能變數名稱,就不會繼續查找DNS server, 所以可以節省時間
- hosts設置的IP地址是靜態的,如果web app的宿主機地址發生改變,對應的hosts也要改寫。
功能變數名稱查詢順序
瀏覽器緩存 > 本地操作系統緩存 > DNS伺服器(路由緩存 > 互聯網DNS緩存伺服器) > 遞歸搜索
-
瀏覽器緩存: 只存下瀏覽器自己訪問過的功能變數名稱.
- 為了加快訪問速度,Google Chrome瀏覽器採用了預提DNS記錄,在本地建立DNS緩存的方法,加快網站的連接速度。
- chrome://net-internals/#dns 這裡可以看各功能變數名稱的DNS 緩存時間。
- chrome對每個功能變數名稱會預設緩存60s。
-
本地操作系統緩存: 電腦訪問過的, 具體可通過hosts文件設置
- Windows查看緩存:
ipconfig /displaydns
- Windows刷新緩存:
ipconfig /flushdns
- Windows查看緩存:
-
DNS伺服器: 包括路由緩存和互聯網DNS伺服器, 以及13台根伺服器
hosts文件配置
通過上面介紹可知功能變數名稱查詢順序,所以我們可以通過修改操作系統的hosts文件,來配置本地功能變數名稱。
Windows
-
配置
# 打開 hosts文件,文件路徑如下: C:\Windows\System32\drivers\etc\hosts # 添加功能變數名稱配置 192.168.1.1 www.test.com
tips
- 文件修改時,註意功能變數名稱後不要有空格
- 如果是用第三方工具編輯hosts,保存文件時註意編碼格式,必須是
ANSI
。
-
刷新與查看
# 進入 cmd終端視窗(小黑窗) win + r > cmd > 回車 # 查看 DNS緩存 ipconfig /displaydns # 如果沒生效, 則刷新 DNS緩存 ipconfig /flushdns
Linux
-
配置
# 打開 hosts文件,文件路徑如下: sudo vim /etc/hosts # 添加功能變數名稱信息 192.168.1.1 www.test.com
-
刷新
如果功能變數名稱未生效,則可以重啟網路來刷新,下麵是centos操作
service network restart
測試
直接ping功能變數名稱即可,如:
ping www.test.com
Windows還可以查看DNS緩存。
常見問題
-
Windows中的 hosts文件編輯後無法保存
- 原因: hosts文件只有可讀許可權
-
處理: 去掉hosts屬性中的“可讀”即可,如圖所示:
-
- 原因: hosts文件只有可讀許可權
-
修改了hosts文件,添加了功能變數名稱映射信息,但是不生效,試過了重新啟動和刷新DNS都不行
- 原因1: 功能變數名稱信息配置不規範; 或者功能變數名稱、ip拼寫錯誤;
- 原因2: 使用第三方工具編輯 hosts文件,保存後hosts文件的編碼格式變了,而windows對於hosts文件只能讀取ASCII編碼,所以hosts文件的編碼必須是
ANSI
。-
處理: 將hosts文件的功能變數名稱信息填寫好,然後另存為,在編碼處選擇“ANSI”,最後確定。
-