很多時候要搬遷網站到其他主機, 或者把開發中的網站上線前測試, 可以在本機修改 hosts 檔案, 這樣只有自己看到新的網站, 其他人則仍舊瀏覽舊有網站, 待測試完成後才正式修改 DNS 紀錄。電腦會先在 hosts 檔案嘗試找出 hostname 對應的 IP, 如果沒有才會透過 DNS 解析 IP.
編輯 /etc/hosts 檔案還有一個用途, 就是可以把主機經常連接的 hostname 加到 /etc/hosts, 這樣便不用經常使用 dns 查詢.
Linux 修改 hosts
多數 Linux 發行版的 hosts 檔案儲存位置是 /etc/hosts, 例如要將域名 mydomain.tld 指向 IP 192.168.1.100, 用 root 身份開啟 /etc/hosts:
加入以下一行:
192.168.1.100 www.mydomain.tld mydomain.tld
儲存檔案後便完成, 所有本機連向 www.mydomain.tld 及 mydomain.tld 都會指向 192.168.1.100.
Windows 修改 hosts
在 Windows XP 或以上版本, hosts 檔案的位置是 %SystemRoot%\system32\drivers\etc\hosts, %SystemRoot% 表示 Windows 安裝目錄, 預設是 C:\Windows, 即預設 hosts 完整路徑是 C:\Windows\System32\drivers\etc\hosts.
雖然檔案跟 Linux 一樣是純字檔, 可以用 notepad 開始, 但需要用 administrator 的權限才可以編輯, 要用以下步驟:
1. 在 “開始” 功能表找出 Notepad
2. Right click Notepad 並選擇 “以系統管理員身份執行”
3. 開啟檔案, 選擇 %SystemRoot%\system32\drivers\etc\hosts
4. 跟 Linux 一樣, 加入以下一行:
192.168.1.100 www.mydomain.tld mydomain.tld
5. 完成後儲存檔案便會生效了.
Mac 修改 hosts
Mac 把 hosts 同樣儲存在 /etc/hosts, 在終端機透過 sudo 開啟 /etc/hosts, 輸入以下指令:
加入以下一行:
192.168.1.100 www.mydomain.tld mydomain.tld
儲存檔案後便完成.
完成後想測試是否設定成功, 如果用 nslookup, dig, hosts 不會看到變化, 因為以上工具是解析 DNS 伺服器。用 ping 便可以看到否生效:
如果看到 ip 是自行設定的 ip, 那便表示設定正確了。