編輯 hosts 檔案測試網站


很多時候要搬遷網站到其他主機, 或者把開發中的網站上線前測試, 可以在本機修改 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:

$ sudo vi /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, 輸入以下指令:

$ sudo vi /etc/hosts

加入以下一行:

192.168.1.100 www.mydomain.tld mydomain.tld

儲存檔案後便完成.

完成後想測試是否設定成功, 如果用 nslookup, dig, hosts 不會看到變化, 因為以上工具是解析 DNS 伺服器。用 ping 便可以看到否生效:

$ ping www.mydomain.tld

如果看到 ip 是自行設定的 ip, 那便表示設定正確了。

Leave a Reply