-hosts-for-wall
【2.1】修改HOSTS文件实现翻墙的原理和方法
过去,当我需要出墙上网时,我总是依赖 VPN,例如 和 。总的来说,这两款翻墙软件使用起来都比较简单,很容易出墙。 但缺点也很明显。比如它们的访问速度比较慢,偶尔会刮风,有时不能使用。关键是每月有流量限制。例如,蓝光限制为每月 800 M。这个流量只能勉强支持一个月查一些数据,但是如果你需要看一些视频,那就只能付费了。所以我也放弃了使用VPN,直接用HOSTS文件翻墙。
看完这篇文章你会知道:
修改HOSTS文件实现翻墙原理如何修改HOSTS文件实现翻墙方法如何获取现成的HOSTS文件一、修改HOSTS文件实现翻墙原理wall1.1 当你输入域名和回车时,浏览器为你做了什么?
如果你想了解修改HOSTS文件实现翻墙的原理,就得从这里开始。首先,你需要了解当我们输入一个我们想要访问的域名时会发生什么?比如我们现在要访问简书的首页,那么我们在浏览器上输入域名:,此时浏览器为我们做了以下事情:
第一步:域名解析
在互联网上传输的数据包基本上都是IP包的形式。如果要访问简书首页,则需要简书服务器的IP地址。所以,浏览器做的第一步就是把刚才输入的域名解析成服务器的IP地址。解析成IP地址不是一步到位的,它包括以下几个步骤:
1) DNS进程首先检查浏览器程序的缓存(这里的缓存主要存放IP和域名的键值对,用来提高访问速度,把IP保存在内存在下次需要的时候会有所帮助。可以直接使用,不用继续第二步),如果有[]对应的IP,则直接将域名的IP地址返回给浏览器。如果没有,请跳至 2)
2)查看本地HOSTS文件(系统下HOSTS文件存放路径为:C:\\\\etc,linux下存放路径为:/etc/hosts。内部文件的存储结构如下,将IP地址和域名以键值对的形式存储,用空格隔开),如果有,告诉浏览器找到的IP地址并保存在缓存中方便下次使用。如果还是不行,那么你必须请求一个本地 DNS 服务器,跳到第 3 步)。
3)查看本地DNS服务器,如果本地DNS服务器中有域名对应的IP,直接返回,如果没有,继续4)。这个DNS通常是为你提供本地互联网访问的DNS服务器,也就是互联网应用访问提供商,通常是中国电信或中国联通。与浏览器缓存一样,此 DNS 服务器也有自己的缓存。它将每次向上级服务器申请得到的域名即IP地址保存在自己的缓存中,以便下次有相同申请时直接返回。
4)如果在本地DNS服务器中仍然没有找到我们要的IP地址,那么直接去根域名服务器,也就是根域名服务器请求解析。根域名服务器将查询到的主域名服务器的IP地址返回给本地服务器,本地服务器逐层返回,直到IP地址落入浏览器手中,本次域名解析结束。
1.2 为什么不能上网?
看到这里,你可能会有疑问。既然Root总是返回一个IP地址,也就是说我们可以和我们要访问的服务器建立连接,那为什么还要上网呢?这一切仍然是伟大(Great )的功劳,请百科全书了解它是什么。下面简单介绍一下Great的简单工作原理:
IP 封锁:IP 封锁是指在防火墙中维护一个 IP 黑名单。一旦找到来自黑名单地址的请求数据包,就会直接丢弃该数据包,这也会导致我们的请求没有被接收到。目标主机的及时响应导致超时,从而达到屏蔽目标主机访问的目的。
DNS污染:域名服务器缓存污染,也称为域名服务器缓存中毒,是指一些有意或无意创建的域名服务器数据包,将域名指向错误的IP地址。我要访问简书首页,他应该给我回简书首页的IP地址,他却给我回了新浪首页的地址。一般来说,互联网上都有可靠的域名服务器,但是为了减少网络的流量压力,一般的域名服务器会暂时存储从上游域名服务器获取的解析记录,直到下次其他机器 域名解析后,服务立即可用。一旦域名的本地名称服务器的缓存被污染,它可以将域名内的计算机定向到错误的服务器或服务器的网址。
通过以上两种技术,还有其他技术,有兴趣的可以自行百科。当我们向国外网站发送请求时,DNS服务器总是会给我们返回一个错误的IP地址或者这个请求被丢弃,导致我们无法访问国外网站。
二、修改HOSTS文件实现翻墙的方法
域名解析前面的部分已经解释的很清楚了。如果我们要访问[]这样的外网域名,如果我们不修改hosts文件,那么这个解析过程肯定要经过多个DNS服务器,那么它总是给我们返回一个错误的IP地址,也就是说您将永远无法访问外部网络,并且将永远被锁在墙上。那么如果我们想墙外的话谷歌浏览器清除DNS缓存的方法,一定要提前第三步,也就是在第二步中,我们在hosts文件中添加这个域名对应的IP地址,当我们需要访问这个域名的时候,我们将正确的IP地址指向目标服务器,我们就可以访问这个域名对应的服务器(前提是你添加的IP地址也是正确的)。说了这么多,我们来做一个简单的例子:
在我修改hosts文件之前,如果我想访问网站,会出现如下结果:
我们可以看到,我们根本无法访问该站点。然后按照刚才的思路,我们在hosts文件中添加一行:
216.58.200.192 www.youtube.com
保存后,奇迹发生了,我们可以正常访问主页了。原理其实很简单。上面我们说了,当第一步没有对应域名的缓存时,那么到第二步去hosts文件中查找,因为返回hosts文件中存在的IP告诉浏览器,这个时候,我们就不需要在第三步和第四步进行搜索了,也不会出现DNS混淆,就可以正确访问首页了。
同理,当你想访问其他由于墙的问题而无法访问的网站时,那么你可以按照上面的步骤在网上搜索该域名对应的IP,然后添加到主机文件。
注意:
修改hosts后的有效方法:
开始 -> 运行 -> 输入cmd -> 在CMD窗口输入 ipconfig /flushdns
Linux
终端输入
sudo rcnscd restart
对于发行版,使用命令
sudo systemctl restart NetworkManager
如果你不明白,请尝试一下
Mac OS X 终端输入
sudo killall -HUP mDNSResponder
开启飞行模式 -> 关闭飞行模式
一般方法
拔网线(断网) -> 插网线(重新连接网络)
如果还是不行,请清除浏览器缓存(老D建议不要使用国产浏览器,请使用谷歌浏览器)。前面解析域名的时候,我们说过第一步,程序缓存有之前访问过的域名的IP。如果您更新 HOSTS 文件而不刷新缓存,那么您的更新仍然无效。刷新 DNS 缓存时,您必须等到下载。
如何获取域名可用的IP
关于这个,其实比较难找,至少我用的方法是这样的。如果你有更好的方法,请私信告诉我。我们举个例子:
第一种比较简单的方法是进入命令行,输入-vc 8.8.8.8(如果要找别的域名,替换域名即可) ,此时显示的结果如下:
我们看到这行,如果你用的是学校的网络,那你可以直接把第一行的IPV6地址写到hosts文件中,格式和IPV4一样,肯定可以的。
如果你不在教育网,那你要一一尝试下面的IPV4地址,因为不是每个IP都能用,有的可能会被封,那么如何判断一个IP是可用的呢? ?
+IP+443端口,页面如何跳转到黑页,那么恭喜这个IP可用,如果无法打开到主机的连接,那么这个IP不可用,只能尝试别的了谷歌浏览器清除DNS缓存的方法,下面让我示范一下:
我们测试了 74.125.23.138 地址不可用,所以我们不需要将其添加到 hosts 文件中。我们可以尝试其他几个IP,但是测试这些IP都不可用后,我们只能从其他渠道获取其他IP。我经常去的网站是,输入你要访问的域名,比如下面会出现一些IP,一般如果超时,就说明这个IP对我们不可用,一定要找其他IP响应,并重复操作,直到 Find a IP 。我们找到了一个可用的 IP:
现在如果出现如下黑页,则说明该IP可用,只需将IP和对应的域名写入hosts文件即可。
以上是寻找可用IP的简单介绍。
三、如何获取现成的HOSTS文件
有时候你可能会想,我只想翻墙,看视频,发推,没有其他需求,这么麻烦?那我还不如花钱买个VPN。是的,没错,有时候真的很难找到一个有效的IP,这确实需要我们很多时间,我们不妨把时间花在正确的事情上。不过,网上也有很多别人收集的IPV6文件和IPV4文件。他们会不时更新这些文件,以确保在某些 IP 被阻止时,将它们替换为其他可用的 IP。你要做的也很简单,就是当你发现某个网站不可用时,更新一个新文件即可。
这里我主要介绍两个网站,一个是关于IPV6的hosts文件,一个是关于IPV4的hosts文件,如果你现在的网络支持IPV6,建议使用IPV6,如果没有,可以使用IPV4.@ >
IPv6(6, 协议版本 6)是下一代 协议版本,被指定为 IPv4 的继任者。 Pv6 的地址空间比 IPv4 大得多。这是因为 IPv6 使用 128 位地址,而 IPv4 仅使用 32 位地址。因此,新的地址空间支持 2 的 128 次方(约 3.4 &TImes;10E38) IP 地址。此扩展提供灵活的地址分配和路由转发,并且无需进行网络地址转换(NAT) 依赖。
测试方法一:在浏览器地址栏中输入“URL”
http://test-ipv6.com/
",页面会给出你的ipv6网络测试结果,如下图。
显然,我的网络还不支持 ipv6
关于 IPV6:
https://github.com/lennylxx/ipv6-hosts/blob/master/hosts
您只需复制页面并将其粘贴到您的 HOSTS 文件中,记得以管理员身份打开它。
关于 IPV4:
https://laod.cn/hosts/ 或 https://github.com/googlehosts/hosts/tree/master/hosts-files
进入后找到最新的更新,然后下载,打开压缩包找到里面的可执行文件,根据提示替换你原来的hosts文件。
替换后记得刷新 DNS 缓存(参见上面的步骤)。
以上两个文件可以满足你正常的上网需求,如果遇到无法访问的网络,那么按照上面提到的方法在hosts文件后面加上你想要的IP,就可以满足你的日常需求。所有需求。
讨论
也有一些方法可以建立自己的梯子
主机文件:
参考文献
评论留言