-
hosts
鎖定
Hosts是一個沒有擴展名的系統文件,可以用記事本等工具打開,其作用就是將一些常用的網址域名與其對應的IP地址建立一個關聯“數據庫”,當用户在瀏覽器中輸入一個需要登錄的網址時,系統會首先自動從Hosts文件中尋找對應的IP地址,一旦找到,系統會立即打開對應網頁,如果沒有找到,則系統會再將網址提交DNS域名解析服務器進行IP地址的解析。
需要注意的是,Hosts文件配置的映射是靜態的,如果網絡上的計算機更改了請及時更新IP地址,否則將不能訪問。
hosts歷史
在引入DNS(Domain Name System,域名系統)之前,網絡中的主機是將容易記憶的域名映射到IP地址並將它保存在一個共享的靜態文件hosts中,再由hosts文件來實現網絡中域名的管理。最初Internet非常小,僅使用這個集中管理的文件就可以通過FTP為連入Internet的站點和主機提供域名的發佈和下載。每個Internet站點將定期地更新其主機文件的副本,並且發佈主機文件的更新版本來反映網絡的變化。
但是,當Internet上的計算機迅速增加時,通過一箇中心授權機構為所有Internet主機管理一個主機文件的工作將無法進行。文件會隨着時間的推移而增大,這樣按當前和更新的形式維持文件以及將文件分配至所有站點將變得非常困難,甚至無法完成,於是便產生了DNS服務器。
hosts工作原理
操作系統規定,在進行DNS請求以前,先檢查系自己的Hosts文件中是否有這個域名和IP的映射關係。如果有,則直接訪問這個IP地址指定的網絡位置,如果沒有,再向已知的DNS服務器提出域名解析請求。也就是説Hosts的IP解析優先級比DNS要高。
hosts存儲位置
hosts文件在不同操作系統(甚至不同Windows版本)的位置都不大一樣,
以下為hosts文件在不同系統中所處的目錄
Windows XP/2000/Vista/7/8/8.1/10:C:\windows\system32\drivers\etc\
(XP系統無法使用bat批處理命令直接替換hosts,需手動替換後重新插拔網線或重啓方使hosts生效)
(可更改\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath項修改host位置)
Windows 95/98/Me:%WinDir%\ (其實就是C:\WINDOWS)
Linux及其他類Unix操作系統:/etc/
Mac OS 9及更早的系統:System Folder: Preferences或System folder(文件格式可能與Windows和Linux所對應的文件不同)
Mac OS X:/private/etc(使用BSD風格的hosts文件)
OS/2及eComStation:"bootdrive":\mptn\etc\
Android:/system/etc/
Symbian第1/2版手機:C:\system\data\
Symbian第3版手機:C:\private\10000882\(能使用兼容AllFiles的文件瀏覽器訪問。)
iPhone OS:/etc/(需要越獄)
iPad OS:/private/etc
webOS:/etc
hosts文件內容
Windows版本原始host文件內容:
# Copyright (c) 1993-2009 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost
如果你懷疑你的hosts文件 被病毒 木馬修改,可複製以上內容修復hosts 文件。
hosts具體作用
來看一下Hosts文件的工作方式以及它在具體使用中起哪些作用。
1、加快域名解析
2、方便局域網用户
在很多單位的局域網中,會有服務器提供給用户使用。但由於局域網中一般很少架設DNS服務器,訪問這些服務器時,要輸入難記的IP地址。這對不少人來説相當麻煩。可以分別給這些服務器取個容易記住的名字,然後在Hosts中建立IP映射,這樣以後訪問的時候,只要輸入這個服務器的名字就行了。
3、屏蔽網站(域名重定向)
有很多網站不經過用户同意就將各種各樣的插件安裝到你的計算機中,其中有些説不定就是木馬或病毒。對於這些網站我們可以利用Hosts把該網站的域名映射到錯誤的IP或本地計算機的IP,這樣就不用訪問了。在WINDOWS系統中,約定 127.0.0.1 為本地計算機的IP地址, 0.0.0.0是錯誤的IP地址。
如果,我們在Hosts中,寫入以下內容:
127.0.0.1要屏蔽的網站A的域名
0.0.0.0要屏蔽的網站B的域名
這樣,計算機解析域名A和 B時,就解析到本機IP或錯誤的IP,達到了屏蔽網站A 和B的目的。
4、順利連接系統
對於Lotus的服務器和一些數據庫服務器,在訪問時如果直接輸入IP地址那是不能訪問的,只能輸入服務器名才能訪問。那麼我們配置好Hosts文件,這樣輸入服務器名就能順利連接了。
5、虛擬域名
很多時候,網站建設者需要把”軟環境“搭建好,再進行上傳調試。但類似於郵件服務,則需要使用域名來輔助調試,這時就可以將本地 IP 地址與一個”虛擬域名“做地址指向,就可以達到要求的效果,且無需花費。如:
127.0.0.1 網站域名
hosts文件修改
1、修改hosts文件:
一般打開hosts文件裏面都會有個示例,按照其格式修改即可
比如以下內容:
即代表打開abc .cn這個網址將解析到127.0.0.1,ip地址與網址間至少有一空格,當然建議通過按[Tab]鍵來編輯,即美觀又不容易編寫失誤;這也就是通過解析到本地回還地址屏蔽一些不友好的網站或ip了,當然在前面加一個#號即可暫時將這一行讓它失效。
在修改HOSTS文件時候,還常常遇到修改保存後無效的情況,這裏要提醒大家注意的一點:很多人是寫在最後行,寫完最後一行後在沒有回車的情況下,這一行是不生效的。一定要記得回車。建議大家遵循這樣的習慣:“ip地址+Tab+域名+換行” 添加記錄。
2、hosts文件的系統屬性:
hosts文件默認具有隱藏屬性,系統默認設置情況下是看不到的,當然進到這個文件除了直接輸入路經也是無法看到了。解決辦法:打開我的電腦->點擊工具->文件夾選項->查看->取消勾選隱藏受保護的系統文件->確定即可。
在Hosts文件上面點右鍵->屬性->把只讀屬性去掉->確定,即可保存。
3.Hosts在UAC安全策略無法打開或編輯:
遇到windows VISTA 或者 windows 7 操作系統無法打開和編輯的情況,提示:“不能創建文件” 或者 “文件操作失敗”等提示,是因為安全機制UAC造成的,你可以使用以下方法解決:
按着Shift鍵,然後Hosts文件上面右鍵, 以管理員方式運行即可。
4.一個比較便捷的打開hosts文件的方法
新建一個txt文件,在你其中輸入:
notepad "%SystemRoot%\system32\drivers\etc\hosts"
ipconfig /flushdns
exit 保存,將擴展名改成成.bat,之後雙擊這個bat文件就可以自動打開hosts文件進行修改了。
5.Android中的Hosts
由於某些原因,可能需要修改 hosts 文件指定域名到對應的 IP 地址。Android 是基於 Linux 的系統,與 Linux 類似,通過 hosts 文件來設置。
在 Android 下,/etc 是 link 到 /system/etc 的,我們需要修改 /system/etc/hosts 來實現。但是這個文件是隻讀,不能通過 shell 直接修改。可以通過連接到 PC 上使用 adb 來修改。步驟如下:
1、獲得root權限:adb root
2、設置/system為可讀寫:adb remount
3、將hosts文件複製到PC:adb pull /system/etc/hosts
4、修改PC機上文件
5、將PC機上文件複製到手機:adb push /system/etc/hosts
如果要查看是否修改成功,可以在PC上執行adb shell,運行cat /system/etc/hosts;或者在手機上運行cat /system/etc/hosts。
在Android系統中,hosts文件格式有一點與PC機Linux不同:不能在一行中一個IP對應多個域名,比如:
127.0.0.1 host1.example.com host2.example.com host3.example.com
在大多PC機Linux系統是合法的,但不能在Android上起作用,需要拆成每個域名一行才能使用:
x.x.x.x host1.example.com
x.x.x.x host2.example.com
x.x.x.x host3.example.com
hosts文件更新
1.訪問googlecode網站獲得Google Hosts的最新文件,這裏提供了最新的映射IP地址,將獲得的hosts文件附加到自己電腦的hosts中就可以了;