通過 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”,最後確定。
-