hosts文件
hosts —— the static table lookup for host name(主機(jī)名查詢靜態(tài)表)。
hosts文件是Linux系統(tǒng)上一個(gè)負(fù)責(zé)ip地址與域名快速解析的文件,以ascii格式保存在/etc/目錄下。hosts文件包含了ip地址與主機(jī)名之間的映射,還包括主機(jī)的別名。在沒有域名解析服務(wù)器的情況下,系統(tǒng)上的所有網(wǎng)絡(luò)程序都通過查詢該文件來解析對應(yīng)于某個(gè)主機(jī)名的ip地址,否則就需要使用dns服務(wù)程序來解決。通過可以將常用的域名和ip地址映射加入到hosts文件中,實(shí)現(xiàn)快速方便的訪問。
1、名詞解析
主機(jī)名:
無論是在局域網(wǎng)還是在INTERNET上,每臺(tái)主機(jī)都有一個(gè)IP地址,用來區(qū)分當(dāng)前是那一臺(tái)機(jī)器(其實(shí)底層是使用機(jī)器的物理地址),也就是說IP地址就是一個(gè)主機(jī)的門牌號,唯一的標(biāo)示這一臺(tái)機(jī)子。
公網(wǎng):
IP地址不方便記憶,所以又有了域名。域名只是在公網(wǎng)(INTERNET)中存在,每個(gè)域名對應(yīng)著一個(gè)IP地址,但一個(gè)IP地址可以對應(yīng)多個(gè)域名。
局域網(wǎng):
每臺(tái)機(jī)器都有一個(gè)主機(jī)名,用于主機(jī)與主機(jī)之間區(qū)別。我們可以為每一臺(tái)機(jī)器設(shè)置主機(jī)名,便于以容易的方法來互相訪問。比如我們在局域網(wǎng)中可以根據(jù)每臺(tái)機(jī)的功用來為其命名。
用途:例如我們可以通過主機(jī)名,通過ssh命令遠(yuǎn)程得登錄別人的電腦。
2、關(guān)于/etc/host,主機(jī)名和IP配置文件
Hosts - The static table lookup for host name(主機(jī)名查詢靜態(tài)表)
用途:
hosts文件是Linux系統(tǒng)中一個(gè)負(fù)責(zé)IP地址與域名快速解析的文件,
存儲(chǔ):
以ASCII格式保存在“/etc”目錄下,文件名為“hosts”(不同的linux版本,這個(gè)配置文件也可能不同。比如Debian的對應(yīng)文件是/etc/hostname)。
內(nèi)容:
hosts文件包含了IP地址和主機(jī)名之間的映射,還包括主機(jī)名的別名。
作用:
在沒有域名服務(wù)器的情況下,系統(tǒng)上的所有網(wǎng)絡(luò)程序都通過查詢該文件來解析對應(yīng)于某個(gè)主機(jī)名的IP地址,否則就需要使用DNS服務(wù)程序來解決。通常可以將常用的域名和IP地址映射加入到hosts文件中,實(shí)現(xiàn)快速方便的訪問。
3、優(yōu)先級
優(yōu)先級 : dns緩存 > hosts > dns服務(wù)
4、配置hosts文件
這個(gè)文件可以配置主機(jī)ip及對應(yīng)的主機(jī)名,對于服務(wù)器類型的linux系統(tǒng)其作用還是不可忽略的。在局域網(wǎng)或是INTERNET上,每臺(tái)主機(jī)都有一個(gè)IP地址,它區(qū)分開每臺(tái)主機(jī),并可以根據(jù)ip進(jìn)行通訊。但I(xiàn)P地址不方便記憶,所以又有了域名。在一個(gè)局域網(wǎng)中,每臺(tái)機(jī)器都有一個(gè)主機(jī)名,用于區(qū)分主機(jī),便于相互訪問。
Linux主機(jī)名的相關(guān)配置文件就是/etc/hosts;這個(gè)文件告訴本主機(jī)哪些域名對應(yīng)那些ip,那些主機(jī)名對應(yīng)哪些ip:
比如文件中有這樣的定義
192.168.1.100 linumu100 test100
假設(shè)192.168.1.100是一臺(tái)網(wǎng)站服務(wù)器,在網(wǎng)頁中輸入http://linumu100或http://test100就會(huì)打開192.168.1.100的網(wǎng)頁。
通常情況下這個(gè)文件首先記錄了本機(jī)的ip和主機(jī)名:
127.0.0.1 localhost.localdomain localhost
這就是在我們在調(diào)試web項(xiàng)目的時(shí)候,我們明明在瀏覽器的地址欄中輸入的是localhost,他會(huì)知道我們是本地調(diào)試,因?yàn)樗成涞搅?27.0.0.1(即本機(jī))。
5、配置文件格式說明
但這種映射只是本地機(jī)的映射,也就是說每臺(tái)機(jī)器都是獨(dú)立的,只有在hosts文件中進(jìn)行了配置才能使用主機(jī)名來訪問。
在hosts文件中,我們會(huì)看到類似下面的內(nèi)容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 localhost.localdomain localhost
192.168.1.195 debian.localdomain debian
一般情況下hosts的內(nèi)容關(guān)于主機(jī)名(Hostname)的定義,每行為一個(gè)主機(jī),每行由三部份組成,每個(gè)部份由空格隔開。其中#號開頭的行做說明(即注釋的作用),不被系統(tǒng)解釋。
hosts文件格式:
ip地址 主機(jī)名/域名 (主機(jī)別名)
第一部份:網(wǎng)絡(luò)IP地址;
第二部份:主機(jī)名或域名;
第三部份:主機(jī)名別名;
當(dāng)然每行也可以是兩部份,即主機(jī)IP地址和主機(jī)名;比如 192.168.1.100 linmu100。
主機(jī)名(hostname)和域名(Domain)的區(qū)別:
主機(jī)名通常在局域網(wǎng)內(nèi)使用,通過hosts文件,主機(jī)名就被解析到對應(yīng)ip;
域名通常在internet上使用,但如果本機(jī)不想使用internet上的域名解析,這時(shí)就可以更改hosts文件,加入自己的域名解析。
6、hosts文件的用途
6.1 解決遠(yuǎn)程登錄linux主機(jī)過慢問題
有時(shí)客戶端想遠(yuǎn)程登錄一臺(tái)linux主機(jī),但每次登錄輸入密碼后都會(huì)等很長一段時(shí)間才會(huì)進(jìn)入,這是因?yàn)閘inux主機(jī)在返回信息時(shí)需要解析ip,如果在linux主機(jī)的hosts文件事先加入客戶端的ip地址,這時(shí)再從客戶端遠(yuǎn)程登錄linux就會(huì)變很快。
注:這里所說的遠(yuǎn)程登錄不僅僅是ssh,還可能是mysql遠(yuǎn)程登錄,或是文件共享的查詢等。
6.2 雙機(jī)互連
當(dāng)兩臺(tái)主機(jī)只是雙機(jī)互連時(shí),這時(shí)兩臺(tái)主機(jī)都需要設(shè)置自己的ip,同時(shí)在對方的hosts文件里加入自己的ip和主機(jī)名。
7、修改主機(jī)名
其實(shí)主機(jī)名的修改也有專用工具,就是hostname
hostname - show or set the system's host name
顯示主機(jī)名:
此主機(jī)的主機(jī)名是zhengcanrui,不加參數(shù)是用來顯示當(dāng)前主機(jī)的主機(jī)名;
臨時(shí)設(shè)置主機(jī)名:
# hostname test100
# hostname 注:顯示主機(jī)名
test100
通過hostname 工具來設(shè)置主機(jī)名只是臨時(shí)的,下次重啟系統(tǒng)時(shí),此主機(jī)名將不會(huì)存在;
顯示主機(jī)IP:
# hostname -i
192.168.1.100
以上所述是小編給大家介紹的linux系統(tǒng)下hosts文件詳解及配置,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- Linux 修改 etc/hosts文件詳細(xì)介紹
- script_tool_for_linux.bash: Linux 環(huán)境下的 hosts 一鍵部署腳本
- 關(guān)于linux服務(wù)器hosts文件配置詳解