hosts的簡介和修改方法

1、什麼是hosts

1、什麼是hosts

hosts —— the static table lookup for host name(主機名查詢靜態表)。android


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

Hosts是一個沒有擴展名的系統文件,其做用就是將一些經常使用的網址 域名與其對應的 IP地址創建一個關聯「數據庫」,當用戶在瀏覽器中輸入一個須要登陸的網址時,系統會首先自動從 Hosts文件中尋找對應的 IP地址,一旦找到,系統會當即打開對應網頁,若是沒有找到,則系統會再將網址提交DNS 域名解析服務器進行IP地址的解析。

優先級 : dns緩存 > hosts > dns服務

2、hosts的位置

hosts在各個系統中所在的文件夾:
  • Windows 系統hosts位於 C:\Windows\System32\drivers\etc\hosts
  • Android(安卓)系統hosts位於 /etc/hosts
  • Mac(蘋果電腦)系統hosts位於 /etc/hosts
  • iPhone(iOS)系統hosts位於 /etc/hosts
  • Linux系統hosts位於 /etc/hosts
  • 絕大多數Unix系統都是在 /etc/hosts

3、hosts的內容

Windows版本的hosts文件內容以下:

# 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文件對系統正常運行並無什麼影響。

在一個局域網中,每臺機器都有一個主機名,用於區分主機,便於相互訪問。
通常/etc/hosts的內容通常有以下相似內容:
127.0.0.1 localhost.localdomain localhost
192.168.1.100 linumu100.com linumu100
192.168.1.120 ftpserver ftp120

通常狀況下hosts文件的每行尾一個主機,每行由三部分組成,每一個部分由空格隔開。
第一部分:網絡IP地址;
第二部分:主機名或域名;
第三部分:主機名別名;
固然每行也能夠是兩部分,即主機IP地址和主機名。

主機名(hostname)和域名(domain)的區別:
主機名一般在局域網內使用,經過hosts文件,主機名就被解析到對應IP;
域名一般在INTERNET上使用,但若是本機不想使用internet上的域名解析,這時就能夠更改hosts文件,加入本身的域名解析。

4、hosts的做用

一、加快 域名解析
對於要常常訪問的網站,咱們能夠經過在Hosts中配置 域名和IP的映射關係,提升域名解析速度。因爲有了映射關係,當咱們輸入域名計算機就能很快解析出IP,而不用請求網絡上的DNS服務器。

二、方便局域網用戶
在不少單位的局域網中,會有服務器提供給用戶使用。但因爲局域網中通常不多架設DNS服務器,訪問這些服務器時,要輸入難記的IP地址。這對很多人來講至關麻煩。能夠分別給這些服務器取個容易記住的名字,而後在Hosts中創建IP映射,這樣之後訪問的時候,只要輸入這個服務器的名字就好了。

三、屏蔽網站( 域名重定向
有不少網站不通過用戶贊成就將各類各樣的 插件安裝到你的計算機中,其中有些說不定就是木馬或病毒。對於這些網站咱們能夠利用Hosts把該網站的 域名映射到錯誤的IP或本地計算機的IP,這樣就不用訪問了。

四、順利鏈接系統
對於Lotus的服務器和一些 數據庫服務器,在訪問時若是直接輸入IP地址那是不能訪問的,只能輸入服務器名才能訪問。那麼咱們配置好Hosts文件,這樣輸入服務器名就能順利鏈接了。

5.虛擬域名
不少時候,網站建設者須要把」軟環境「搭建好,再進行上傳調試。但相似於郵件服務,則須要使用域名來輔助調試,這時就能夠將本地 IP 地址與一個」虛擬域名「作地址指向,就能夠達到要求的效果,且無需花費。如:
  127.0.0.1 網站域名
  以後在瀏覽器地址欄中輸入對應的網站域名便可。

5、如何修改hosts

一、屏蔽網站(域名重定向)

在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的目的。

在修改hosts文件時候,還經常遇到修改保存後無效的狀況,這裏要提醒你們注意的一點:不少人是寫在最後行,寫完最後一行後在沒有回車的狀況下,這一行是不生效的。必定要記得回車。建議你們遵循這樣的習慣:「ip地址+Tab+ 域名+換行」 添加記錄。

二、局域網用戶訪問

若是,咱們在A主機的hosts中,寫入如下內容:
B主機的ip B主機名
這樣咱們就能夠經過B主機名找到B主機及其服務。

三、android系統的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上google

第一步:下載能夠正常使用的hosts文件
能夠在百度搜索相似「Google hosts」等相關關鍵詞或者老D,找到最新可用的host文件。

第二步:修改本地hosts文件
在電腦系統中找到hosts,路徑基本上是C:\Windows\System32\drivers\etc,而後將下載的hosts文件將本地hosts文件替換,或者在本地hosts文件中直接在地址欄修改便可!

第三步:刷新本地dns
第二步完成本地hosts文件的修改以後,可使用dos命令完成最後的操做。
(1)使用WIN+R鍵,啓動運行,鍵入cmd
(2)在dos界面輸入「ipcong /flushdns」
(3)dos命令窗提示「已成功刷新DNS解析緩存」,就完成了。

6、其餘

一、怎麼獲取域名所對應的IP地址

打開「開始――運行」,輸入「cmd」,在命令行界面輸入「ping www.baidu.com」,回車。
顯示結果相似:Reply from 220.181.6.18:bytes=32 time=24msTTL=55。
其中的220.181.6.18就是域名所對應IP地址(百度的)。呵呵!

二、修改hosts後生效方法

(1)Windows
開始 -> 運行 -> 輸入cmd -> 在CMD窗口輸入
ipconfig /flushdns

(2)Linux
打開終端
重啓網絡:
sudo /etc/init.d/networking restart

desktop版能夠這樣重啓:
sudo service network-manager restart

若是隻是修改了某個網卡(例如eth0)的信息,也能夠經過重啓網卡的方式使其修改生效。
sudo ifdown eth0 sudo ifup eth0
若是不懂請都嘗試下

(3)Mac OS X終端輸入
sudo killall -HUP mDNSResponder

(4)Android
開啓飛行模式 -> 關閉飛行模式

(5)通用方法
拔網線(斷網) -> 插網線(從新鏈接網絡)
如不行請清空瀏覽器緩存(建議不要使用國產瀏覽器,請使用谷歌Chrome瀏覽器)
相關文章
相關標籤/搜索