hosts 是用來定義機器的 IP 與主機名稱。
hosts 您可以將它假想成是每臺主機獨用的 DNS,透過它您可以快速的查詢到已定義過的主機名稱所對映的 IP 位址。
此定義檔設定的格式如下︰
範例編號 | IP 位址 | 主機名稱 (hostname) | 別名
(alias)
| 1 | 127.0.0.1 | localhost.www.mycorp.com | localhost
| 2 | 192.168.168.1 | www.mycorp.com | www
| 3 | 192.168.168.1 | ftp.mycorp.com | bbs
| 4 | 22.3.169.28 | game |
| 5 | 168.95.1.88 | www.hinet.net | hinet
| 6 | 202.1.237.21 | tw.yahoo.com | kimo
|
在上方表格中︰
- 主機名稱通常是使用完整的網域名稱,也就是主機名稱加上網域名稱。
如︰www.mycorp.com www 為主機名稱;mycorp.com
為網域名稱 (Domain name)
- 別名 (alias) 可以隨您任意命名,它是用來替代主機名稱的。如果您想不出來或不想取別名,您可以省略這一部份。
- 編號 1 是必需要的,通常是由系統依據您先前所給予的相關設定值,自動為您寫入檔案中的。
如果您發現 /etc/hosts 中沒有 127.0.0.1 的對映設定,您需要手動加上。別名的部份請勿省略,因為在管理測試上您將會時常用到。
- 編號 4 的設定,雖然不會造成任何錯誤,但是它是不好的設定格式,因為您可能在日後會忘記這個 IP 的正確網域名稱。
- 您可以將這臺主機常會連結的遠端主機的 IP 位址與網域名稱給編進來,這樣可以省下前往 DNS 查詢的時間,加速連線。
- 請將最常連結的遠端主機放置於檔案的前面,因為它是由檔案的最前面逐行搜尋而下。
- 基於上一項敘述,如果您的別名有取相同名稱的話,排在後面的將會被忽略掉。所以千萬不要有相同別名的情況出現。
在來,您需要瞭解一個與 hosts 稍微有點關聯的檔案,它的名字叫 hosts.conf,完整的路徑名稱為 /etc/hosts.conf
這個檔案是用來告訴系統當要查詢 hostname 所對映的 IP 時,它應該要查詢的順序。
這個檔案的內容如下,您只需按照需求改變查詢的順序即可;不過通常是無需去改變的。
# $FreeBSD: src/etc/host.conf,v 1.6 1999/08/27 23:23:41 peter Exp $
# First try the /etc/hosts file
hosts
# Now try the nameserver next.
bind
# If you have YP/NIS configured, uncomment the next line
# nis
|
如同 hosts 一樣,整個查詢的順序是由上而下;也就是說擺在最上面的先查詢,查詢不到再由下面的來查詢。
- hosts 向 /etc/hosts 檔案中查詢
- bind 向網域名稱伺服器 (Domain Name Server => DNS) 查詢
- nis 向 NIS/YP server 查詢
如果您的主機是 NIS/YP client,您應該將 nis 的註解符號 #
去除,並移到最上面,以獲取較快的連線時間。
另外,您還需瞭解另一與 hosts 算的上是遠房親戚的檔案,它的名字叫 resolv.conf,完整的路徑名稱為 /etc/resolv.conf
它用來設定您的主機名稱、網域名稱伺服器位址與網域搜尋的順序。
全部只有三個參數,參數與其設定值間請按 TAB 鍵或空白鍵來做間隔;若設定值不只一個,請按空白鍵來做間隔。
各參數的解說如下︰
domain mycorp.com
| 設定您的網域名稱為 mycorp.com
|
nameserver 168.95.1.1
| 設定您的網域名稱伺服器主機位址,您可以設定多部 Domain Name
Server,系統會依序一部接一部去查詢。
請以每一部主機為一行的格式來設定。
|
search hinet.net yahoo.com
| 設定網域搜尋的順序。 當您鍵入不是以符號 . 做結尾的主機名稱時,系統會自動將這些網域附加上去搜尋。 此參數為非必需選項。
| |
如果將三個檔案整合起來看的話,我們用例子來說明好了。
假如您在瀏灠器上輸入 http://hinet 的話,系統會先查詢 /etc/hosts 中有無主機名稱『hinet』的 IP,如果有的話,就直接取用它的 IP
位址。如果沒有的話,就會查看 /etc/resolv.conf 檔案 search 參數中設定的網域,並將其加在 hinet 之後,再向
/etc/resolv.conf 檔案 nameserver 參數中設定的主機 (168.95.1.1) 查詢 hinet.hinet.net
這個主機名稱所對映的 IP,如果找不到對映的 IP,就換查詢 hinet.nctu.edu.tw 這個主機名稱所對映的 IP,直到 search
的網域設定都找光了還是沒有,就會放棄。
搜尋這個功能雖然可以減少您的打字數,但是卻不是很容易習慣它,所以除非您確定您需要它,不然還是不要設定的好,以免發生無法連上目的主機時,常因忘了有設定
search 的功能,而偵錯了老半天。
|