iThome online | iThome Blog | iThome周刊訂閱

載入中...

557557

IT邦初學者
10級

這個路徑內的資料夾hosts是何用處

C:\Windows\System32\drivers\etc\hosts
請問各位前輩,不知道各位有沒有開啟過這資料夾
這進入後~以記事本開啟最後這檔案內
1.最下方處有 IP 以及 網址 這是幹嘛用的呢?
2.我要另外新增填上後會不會有何影響?

是一個朋友給我要進入後台的網址
但是要這樣做設定才可以正常開啟網頁..
很好奇 這樣做有何好處~
是可以增加後台安全性嗎?
是的話以後自己的後台也都依這模式來做了~

2008-12-04 17:19:05 補充



收到書籤:發佈到twitter      
解決時間:2008-12-13 16:20:01
發問時間:2008-12-03 16:19:36

▼ ADVERTISEMENT ▼

最佳解答(網友推薦)
18

回答:twtw ( IT邦初學者9級 )

時間:2008-12-03 17:08:59

簡而言之,就是要查詢一個主機名稱時,
如果這個檔案沒定義的話,
就會去查DNS。
例如,若該檔案的內容有:

1.2.3.4   ithelp.ithome.com.tw

那麼您要連ithelp.ithome.com.tw時,
不會去向 DNS 查真正的 IP 是什麼,
而馬上往 1.2.3.4 來送。

過去一些病毒,就是把一堆的防毒軟體的官方網站,
都列到這個hosts檔案中,
統統都指向到 127.0.0.1 ,也就是電腦本身,
導致都無法更新病毒碼,也無法連到防毒軟體的網站;
只要把 hosts 這些的內容刪掉,
就會往 DNS 去查真正 IP 的位置;
這是病毒利用 hosts 的負面作法。

如果有一些常要連的目標,
若 DNS 常會有問題,或者很清楚其 IP ,
也可以手動去加上 IP 及其對應名稱;
或者若 DNS 還沒有設好,
而主機上有好幾個虛擬主機的話,
且是用 virtual name 來對應的話,
也可以利用 hosts 的功能,
這樣在這台電腦上 query 該名稱,
雖 DNS 還沒有該記錄,但您電腦就可 query 到正確的 IP 所在,
而虛擬主機也可以由被 query 的hostname來做出回應;
這是 hosts 可以的正向作法。

參考資料:經驗

2008-12-03 17:15:25補充
其實在 *nix 環境下,

/etc/nsswitch.conf

這檔案會定義要往哪一個目標來查一個主機名稱的順序,

像一般是:

hosts: files dns

就是會先查 *nix 中的 /etc/hosts 這檔案,

若沒有,才去查 dns 的 IP 對應。

files dns 甚至也可以有 ldap 作為查詢的對象,

而這些優先順序可以去自行決定。

到是不曉得 windows 下有沒有像 nsswitch.conf 機制?
2008-12-09 09:02:48補充
從您的問題補充來看,是涉及到 web server 的虛擬主機再加上名稱對照的議題。

可先用google查一下 name-based virtual host 的作法。

簡言之,一台機器上如果只綁一個IP又要用多重虛擬主機功能,

就是要用 name-based virtual host 的設法。

一台機器 IP 為 1.2.3.4

1.預設的 web 根目錄為 /var/www/default

2.www.abc.com web 根目錄為 /var/www/abc

3.後台管理 anyname_youlike 的 根目錄為 /var/www/secret



只有以 1.2.3.4 為目標的 80 port,該台 web server 才會收到client端的 request;

但是由哪一個虛擬的 web 目錄來回應,

則是看 http 的環境變數 HTTP_HOST 是什麼來決定;

一、若是 www.abc.com 的話,符合第 2 項目

二、若是 1.2.3.4 的話,因不符2,3就只會以 1 來回應

三、若是 www.hinet.net 的話,因不符2,3就只會以 1 來回應

四、若是 anyname_youlike 就會以 3 來回應

當然可以把 1 去掉,把2當預設,這樣任何不符 2 或 3 的就都以 abc 來回應。
2008-12-09 09:03:11補充
3 的名稱可以是網路上DNS上永遠查不到的名稱,

所以就可在 hosts 這檔案上加上

1.2.3.4 anyname_youlike ,

這樣在您的 browser 上打 anyname_youlike 就會指到 1.2.3.4

那時的 HTTP 環境變數 HTTP_HOST 是 anyname_youlike 就會秀出後台的那個虛擬web。



所以安全不安全,在於,

只要有人知道該 IP ,且知道裡面有個 anyname_youlike的名稱的話,

那麼任何人只要在他電腦中的 hosts 上加入

1.2.3.4 anyname_youlike

這筆IP、名稱對照,也一樣可以連到該後台的界面。

若真的要安全的話,要再加上

拒絕所有IP,只允許某些IP連上該虛擬 web 目錄 的規則

或者

用 http basic authentication 的帳號密碼存取該目錄。
這個路徑內的資料夾hosts是何用處
iT邦守護神
回答:antijava( IT邦初學者1級 )
時間:2008-12-03 17:07:38
14
有點像DNS提供 domain name 與 IP 的對應表

詳情請看英文維基說明
中文維基說明

參考資料:維基

iT邦守護神
回答:richardhsieh( IT邦初學者5級 )
時間:2008-12-03 17:26:19
11
可以看一下這一篇
http://ithelp.ithome.com.tw/question/10001606
回答:a9390390( IT邦初學者8級 )
時間:2008-12-03 17:26:20
11
之前有網友提出類似的問題

IT邦幫忙: 要如何解釋『hosts』這名詞?
http://ithelp.ithome.com.tw/question/10001606

以下是小弟找到個資訊

Hosts文件
維基百科,自由的百科全書
http://zh.wikipedia.org/w/index.php?title=Hosts%E6%96%87%E4%BB%B6&variant=zh-tw

hosts文件是一個用於儲存計算機網路中各節點信息的計算機文件。這個文件負責將主機名映射到相應的IP地址。hosts文件通常用於補充或取代網路中DNS的功能。和DNS不同的是,計算機的使用者可以直接對hosts文件進行控制。

文件位置及默認內容
hosts文件在不同作業系統(甚至不同Windows版本)的位置都不大一樣:

* Windows NT/2000/XP/Vista:默認位置為%SystemRoot%\system32\drivers\etc\,但也可以改變。動態目錄由註冊表鍵\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters\DataBasePath決定。

在Windows中,默認的hosts文件通常是空白的或包含了註釋語句並使用了一條默認規則:

127.0.0.1 localhost
::1 localhost


hosts文件的其它用途
hosts文件也可以用於其它情況,例如可以將已知的廣告伺服器重定向到無廣告的機器(通常是本地的IP地址:127.0.0.1)上來過濾廣告。同時也可以通過不下載網路廣告,從而減少頻寬。使用hosts文件還可以減少對DNS伺服器的訪問來加快訪問速度並減少頻寬消耗。

hosts文件的另一個重要用途就是用於攔截一些惡意網站的請求,從而防止訪問欺詐網站或感染一些病毒或惡意軟體。但同時,這個文件也可能被病毒或惡意軟體所利用來阻止用戶更新殺毒軟體或訪問特定網站。

hosts檔是Windows系統中一個負責IP位址與功能變數名稱快遞解析的檔,以ASCLL格式保存。電腦在鍵入功能變數名稱(比如www.eoooo.com)的時候,首先會去看看hosts檔匯總有沒有關於此功能變數名稱IP位址的記錄。如果有,就直接登陸該網站;如果沒有再查詢DNS伺服器。hosts在Windows98中是hosts.sam檔,在Windows2000/XP中則就是hosts檔,沒有拓展名

在文件夾C:\WINDOWS\system32\drivers\etc下,建立host的無副檔名文件。
在裏面輸入如下內容即可。

IP(你要轉向的IP位址)+ 空格+ 功能變數名稱(你要設置的功能變數名稱)

參考資料:維基百科, IT邦幫忙

回答:coolvista( IT邦初學者8級 )
時間:2008-12-03 17:27:09
8
這個目錄是存放LMHOSTS檔,用來解決名稱與IP位址對照的方法之一,但一般user很少會去維護它(也不必要)
如果想了解LMHOSTS檔內容,運作,管理,請自行找相關書籍研究,實在是太冷門囉!
回答:kevinhuang( IT邦初學者9級 )
時間:2008-12-04 08:56:34
8
hosts 檔案
1. 主要是用來將主機名稱解析為IP位置(與DNS server 相同)。
2. hosts檔屬於DNS Client 用來解析網域主機名稱與IP位置的一張對應表。
3. 大部分設定時機用於在固定或是經常使用已知主機名稱與IP位置或是你可以在當對方沒有的主機沒有註冊domain name或是沒有使用DDNS的時候,你也可以自訂一個名稱於此,則一樣可以使用主機名稱來連線,此方式也可以加速名稱解析的效能。
4. 用於沒有DNS SERVER的環境。
5. 在 Windows環境中,名稱解析流程為:(ex: ping hostname)
hosts => DNS Client cache => DNS SERVER => NetBIOS name cache ==>
WINS SERVER ==> NETBIOS Broadcasts ==> LMHOSTS.
6. 關於你如果自己新增記錄於此的話,如果主機對應IP位置沒錯的話,則是OK,但是如果設定錯誤則就算你有設定DNS SERVER,但是該主機名稱還是會無法解析。
7. 通常都不去設定它。2008-12-04 09:08:22 補充

[-隱藏]

回應 kevinhuang

fran633 說:

關於第五點, 還有另一種方式,只是順序有點差別...

2008-12-04 23:38:08

回答:laiout( IT邦初學者8級 )
時間:2008-12-04 09:37:05
7
在每部主機上皆有兩個與名稱解析有關的檔案hosts、lmhosts,比喻來說hosts就如同單機專用的DNS(做FQDN解析),lmhosts就如同單機專用的WINS(做NetBIOS Name解析),而這兩個檔案的記錄優先權比網路設定參照的DNS和WINS Server提供的記錄要來得高,例如dns.hinet.net網路上記錄IP應為168.95.1.1,但如在hosts內加入10.1.1.1 dns.hinet.net,那在這部主機上查詢dns.hinet.net所解析出的IP就是10.1.1.1而不是168.95.1.1。
回答:toithome( IT邦初學者9級 )
時間:2008-12-04 16:48:01
6
簡單來說它可以用來手動記錄ip 和 主機名稱或Domain Name名稱的對應
; ip <-> domain name mapping 讓你的的電腦不需透過DNS或WINS就能mapping到你要的主機;設定如下,因一般公司內部有時會有一些電腦加入網域,但是又有少部份未加入網域,但彼此又需要溝通時,用這個方式會讓client與client間溝通,比較不會有問題! 這邊的client 當然也包括server 與server間!所以這個檔案其實還是非常好用!
kevinhuang的回答其實已非常詳細!

127.0.0.1 localhost
172.1.1.23 mail
172.1.1.100 test.pht.com.tw
回答:charlislee( IT邦初學者10級 )
時間:2008-12-06 00:22:15
4
舉例
就是你的身分證字號 跟 你的名字 互相對應

回應

請填寫您的回應,長度限為1,000個字,回應不計點數,也不限使用次數



 

檢舉違規

違規事項:

*補充檢舉理由(可省略),字數不可超過100字

推薦

推薦理由:


*給回答者的鼓勵(可不填),字數不可超過100字

▼ ADVERTISEMENT ▼

熱門標籤

 ccna代考   cisco   crystal   erp   it   java   javascript   linux   m-power   mail   microsoft   msnsdk   msn機器人   mysql   nas   oracle   outlook   pmi   pmp   raid   report   sap   server   smartquery   sql   vista   vpn   web   windows   xp   倍力   倍力資訊   免費軟體   國際專案管理師   報表   專案管理   微軟   有話大聲說   活動   省錢   硬碟   網站安全   網路儲存   網路管理   網頁安全   資安   資料庫   資訊安全   2003   2008