我們日常最熟悉的作業系統莫過於 Microsoft Windows,但 Linux 與 Unix 系統同樣擁有忠實的用戶群。若您對這兩類系統不太熟悉,今天就帶您認識 Unix 系統中至關重要的 /etc/hosts 檔案。
Hosts - The static table lookup for host name(主機名查詢靜態表)
Linux 的 /etc/hosts 是一個純文字檔案,用於將 IP 位址映射到主機名。它可以記錄本機或其他主機的 IP 及其對應的主機名。不同 Linux 發行版的相關設定檔可能略有差異,例如 Debian 系統的主機名設定檔為 /etc/hostname。
在區域網路或網際網路上,每台主機都有唯一的 IP 位址以供識別與通訊。但 IP 位址難以記憶,因此引入了域名系統。在區域網路中,每台機器亦有主機名以利相互存取。/etc/hosts 正是告訴本機:哪些域名、主機名對應哪些 IP 位址。
例如檔案中定義:
192.168.1.100 linumu100 test100
假設 192.168.1.100 是一台網站伺服器,在瀏覽器輸入 https://linumu100 或 https://test100 即可開啟該伺服器的網頁。
通常此檔案首行會記錄本機的回環位址與主機名:
127.0.0.1 localhost.localdomain localhost
/etc/hosts 典型內容如下:
127.0.0.1 localhost.localdomain localhost 192.168.1.100 linmu100.com linmu100 192.168.1.120 ftpserver ftp120
每行代表一個主機記錄,由空白分隔為三部分:
亦可僅包含兩部分(IP 與主機名),例如 192.168.1.100 linmu100。以 # 開頭的行為註解,系統會忽略。
補充:主機名與域名的區別
主機名通常用於區域網路內部,透過 hosts 檔案解析至對應 IP;域名則用於網際網路。若本機不想使用網際網路的域名解析,可修改 hosts 檔案加入自訂的域名解析。