hosts檔案
hosts —— the static table lookup for host name(主機名稱查詢靜態表)。
hosts檔案是Linux系統上一個負責ip地址與網域名稱快速解析的檔案,以ascii格式儲存在/etc/目錄下。hosts檔案包含了ip地址與主機名稱之間的映射,還包括主機的別名。在沒有網域名稱解析伺服器的情況下,系統上的所有網路程式都通過查詢該檔案來解析對應於某個主機名稱的ip地址,否則就需要使用dns服務程式來解決。通過可以將常用的網域名稱和ip地址映射加入到hosts檔案中,實現快速方便的訪問。
1、名詞解析
主機名稱:
無論是在區域網路還是在INTERNET上,每台主機都有一個IP地址,用來區分當前是那一台機器(其實底層是使用機器的物理地址),也就是說IP地址就是一個主機的門牌號,唯一的標示這一台機子。
公網:
IP地址不方便記憶,所以又有了網域名稱。網域名稱只是在公網(INTERNET)中存在,每個網域名稱對應著一個IP地址,但一個IP地址可以對應多個網域名稱。
區域網路:
每台機器都有一個主機名稱,用於主機與主機之間區別。我們可以為每一台機器設定主機名稱,便於以容易的方法來互相訪問。比如我們在區域網路中可以根據每台機的功用來為其命名。
用途:例如我們可以通過主機名稱,通過ssh命令遠程得登入別人的電腦。
2、關於/etc/host,主機名稱和IP設定檔
Hosts - The static table lookup for host name(主機名稱查詢靜態表)
用途:
hosts檔案是Linux系統中一個負責IP地址與網域名稱快速解析的檔案,
儲存:
以ASCII格式儲存在“/etc”目錄下,檔案名稱為“hosts”(不同的linux版本,這個設定檔也可能不同。比如Debian的對應檔案是/etc/hostname)。
內容:
hosts檔案包含了IP地址和主機名稱之間的映射,還包括主機名稱的別名。
作用:
在沒有網域名稱伺服器的情況下,系統上的所有網路程式都通過查詢該檔案來解析對應於某個主機名稱的IP地址,否則就需要使用DNS服務程式來解決。通常可以將常用的網域名稱和IP地址映射加入到hosts檔案中,實現快速方便的訪問。
3、優先順序
優先順序 : dns緩衝 > hosts > dns服務
4、配置hosts檔案
這個檔案可以配置主機ip及對應的主機名稱,對於伺服器類型的linux系統其作用還是不可忽略的。在區域網路或是INTERNET上,每台主機都有一個IP地址,它區分開每台主機,並可以根據ip進行通訊。但IP地址不方便記憶,所以又有了網域名稱。在一個區域網路中,每台機器都有一個主機名稱,用於區分主機,便於相互訪問。
Linux主機名稱的相關設定檔就是/etc/hosts;這個檔案告訴本主機哪些網域名稱對應那些ip,那些主機名稱對應哪些ip:
比如檔案中有這樣的定義
192.168.1.100 linumu100 test100
假設192.168.1.100是一台網站伺服器,在網頁中輸入http://linumu100或http://test100就會開啟192.168.1.100的網頁。
通常情況下這個檔案首先記錄了原生ip和主機名稱:
127.0.0.1 localhost.localdomain localhost
這就是在我們在調試web項目的時候,我們明明在瀏覽器的地址欄中輸入的是localhost,他會知道我們是本地調試,因為他映射到了127.0.0.1(即本機)。
5、設定檔格式說明
但這種映射只是本地機的映射,也就是說每台機器都是獨立的,只有在hosts檔案中進行了配置才能使用主機名稱來訪問。
在hosts檔案中,我們會看到類似下面的內容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4127.0.0.1 localhost.localdomain localhost192.168.1.195 debian.localdomain debian
一般情況下hosts的內容關於主機名稱(Hostname)的定義,每行為一個主機,每行由三部份組成,每個部份由空格隔開。其中#號開頭的行做說明(即注釋的作用),不被系統解釋。
hosts檔案格式:
ip地址 主機名稱/網域名稱 (主機別名)
第一部份:網路IP地址;
第二部份:主機名稱或網域名稱;
第三部份:主機名稱別名;
當然每行也可以是兩部份,即主機IP地址和主機名稱;比如 192.168.1.100 linmu100。
主機名稱(hostname)和網域名稱(Domain)的區別:
主機名稱通常在區域網路內使用,通過hosts檔案,主機名稱就被解析到對應ip;
網域名稱通常在internet上使用,但如果本機不想使用internet上的網域名稱解析,這時就可以更改hosts檔案,加入自己的網域名稱解析。
6、hosts檔案的用途
6.1 解決遠程登入linux主機過慢問題
有時用戶端想遠程登入一台linux主機,但每次登入輸入密碼後都會等很長一段時間才會進入,這是因為linux主機在返回資訊時需要解析ip,如果在linux主機的hosts檔案事先加入用戶端的ip地址,這時再從用戶端遠程登入linux就會變很快。
註:這裡所說的遠程登入不僅僅是ssh,還可能是mysql遠程登入,或是檔案分享權限設定的查詢等。
6.2 雙機互連
當兩台主機只是雙機互連時,這時兩台主機都需要設定自己的ip,同時在對方的hosts檔案裡加入自己的ip和主機名稱。
7、修改主機名稱
其實主機名稱的修改也有專用工具,就是hostname
hostname - show or set the system's host name
顯示主機名稱:
此主機的主機名稱是zhengcanrui,不加參數是用來顯示當前主機的主機名稱;
臨時設定主機名稱:
# hostname test100# hostname 註:顯示主機名稱test100
通過hostname 工具來設定主機名稱只是臨時的,下次重啟系統時,此主機名稱將不會存在;
顯示主機IP:
# hostname -i192.168.1.100
以上所述是小編給大家介紹的linux系統下hosts檔案詳解及配置,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!