苏格拉邸 | 网络 | 1,689,020 人看过 | 2011.08.05
手把手教你来翻墙之二:hosts的修改和使用

好了,本次介绍常用的翻墙方法之二——hosts法。

在讲解hosts之前,先说一下一些基础知识。

我们知道,假如我们想访问一台主机,计算机真正访问的其实是主机对应的ip而非你输入的网址。那么怎么得到主机的ip?在www中存在着一些特殊的服务器,他们的任务就是记录主机和ip的对应关系,供计算机随时调取查询,这些服务器我们称之为DNS。网络中所有的主机—ip的转换都依赖于此。可以预见,如果出于某种目的,人为的干扰了这一过程,那么必然会导致主机不能访问的情况。

而事实也的确如此,GFW的几种屏蔽方法中便有对DNS的干扰,使得本机得到的ip并非主机的真实ip,达到屏蔽网站的目的。

不过好在我们的电脑还留了一手,这就是今天的主角——hosts。

假如有这样一台主机,他的ip不变,那么我们每次访问他都经过DNS的解析岂不很浪费时间,为什么不能将他的ip记录到本地,下次访问直接调取访问呢?于是我们的hosts诞生了。hosts就是记录了主机和真实ip的一个文件,计算机在访问网络资源时首先调取hosts中的信息,如果找到了所要访问的主机—ip信息便不再会向DNS请求而直接访问主机,如果hosts中没有则去请求DNS,相当于将远端的DNS在本地做了部分的镜像。这样做大大提高了效率。

既然GFW干扰了DNS,而如果hosts中记录了相关的正确的信息,那么我们就可以成功的绕过GFW而达到翻墙的目的了!

那么就开始动手找到hosts并修改里面的信息吧!

1.hosts在哪?怎么才能修改它?

hosts文件的路径为%SystemRoot%\system32\drivers\etc\,注意hosts文件没有后缀名,其中%SystemRoot%为环境变量,指向系统所在目录,对于一般用户而言是c:\windows\,你可以直接输入上面的地址进行访问。hosts文件可以用任何文本编辑器打开,比如记事本。不过修改它之前记得右键—属性,把它的只读属性去掉,否则修改之后是保存不了的。

如果你觉得这样打开hosts比较麻烦,可以采取下面这个简单的办法:

新建一个文本文件,在里面添加内容为  notepad “%SystemRoot%\system32\drivers\etc\hosts”并保存,后缀名改为.bat,运行,你将看到hosts文件被记事本打开了。保存这个文件,当你需要改hosts时点击一下就可以了。

2.我该怎么在里面修改数据?

打开hosts以后我们先来观察一下

# Copyright (c) 1993-1999 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

127.0.0.1 localhost

这是hosts中默认的内容,由上面的解释说明文字我们可以知道,hosts的格式为 ip 空格 主机名,此为一条记录,每条记录占一行。而每一行中#以后的文字是解释说明文字,系统在调取信息时会忽略这一部分。系统默认情况下只在hosts添加了一条信息,便是127.0.0.1,指向localhost。

那么我们只要按照上面的格式往里面添加信息就可以了,添加完成后记得保存。

3.我如何获取ip?

hosts中的ip才是重点,如何获取?目前网上有很多热心的人将被墙的同时可以通过修改hosts访问的网站的hosts信息公布出来了,大家搜索便可以得到。

不过总是等别人的总不是办法,关键时刻还得靠自己,下面介绍如何自己获取ip。

ping是个简单实用的命令,可以返回一系列的数据包括主机的ip。只要我们用没有受到DNS污染的计算机运行ping命令就会得到真实ip了。网络上很多这样的网站,其主机在国外“干净”的地区。常用的有

http://tools.pingdom.com/ping

http://ping.eu/ping

http://just-ping.com

等等。

网站实用的十分简单,输入要ping的域名,经过一段时间的ping之后便会返回ip,将ip和域名填入hosts即可。需要注意的是有些网站会有多个主机,那么可能会得到不同的几个ip,填写入hosts时选取一个ip即可,如果此ip不行再换其他ip。

这样,将hosts保存好之后就可以翻墙了。

修改hosts的优点不用说,简单快捷无不良后果,不过缺点也很明显,只能针对DNS污染型的屏蔽,如果GFW直接屏蔽了此ip那么就无效了。

既然如此,hosts也是目前流传比较广的方法。附上我的hosts,包括了Google Facebook Twitter Youtube 等众多的优秀网站,这些也都是网友辛苦收集的,向他们致敬!

hosts下载点此

PS:对GFW有兴趣的童鞋可以看一下这些文章,加深你对GFW和翻墙的理解。

GFW技术分析  http://www.sufeng.org/blog/480

穿越GFW技术及其控制方法  http://course.ccert.edu.cn/2009/wiki/index.php/Talk:Group8

如何区分国内上网环境中不同的人为网络故障  http://www.williamlong.info/archives/2195.html

update 2011.12.23:我個人現在不太用hosts了,所以也不怎麼維護,裡面的有些數據可能已經失效,還望各位見諒。另外有用卡巴的童鞋可能會對hosts報毒,請無視,純屬誤報。

标签:
« »

1条评论

  1. 游客说道:

    博主不用hosts那用什么了呢?分享一下啊!

发表评论


*