通过修改Host文件访问外网
1.1Host文件简述
Hosts是一个没有扩展名的系统文件,通常位于“C:\Windows\System32\drivers\etc”目录下,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。简单理解就像是电话本一样。
1.2为什么可以通过Host访问外网
这就不得不提到我们那座高墙GTW(Great Fire Wall)了,国内防火墙通过检测DNS服务中查询的域名来看要不要把这个请求嘎掉,如果你访问的是奇奇怪怪的东西,那就不好意思,我直接让你返回错误地址。这就是 Great FireWall 5 种封锁方法中的 DNS 污染,GFW 会对 DNS 的解析过程进行干扰,这会使对某些被干扰的域名返回一个错误的 IP 地址给你的主机,使你无法正确连接到你要的服务器上读取正确的信息。而Host文件会规避掉DNS请求这一流程,在进行 DNS 请求以前,系统会先检查自己的 Hosts 文件中是否有这个地址映射关系,如果有则调用这个 IP 地址映射,如果没有再向已知的 DNS 服务器提出域名解析。
值得一提的时,Hosts 的 IP 需要勤加更改,否则 FB、Twitter 会仍旧上不去。这是因为 GFW 的第二个大招,IP 封锁。比如访问国外一个 IP 无法访问,Ping 不通,tracert 这个 IP 查找所经过的路由器发现,全部在边缘路由器 (GFW) 附近被拦截。换言之,GFW 直接拦截带有这个 IP 头的数据包。所以,如果你更改的 IP 被封锁了,就算你过了 DNS 这一关,也仍旧不能翻过 GFW。
1.3Host如何修改
windows中host一般位于‘C:\Windows\System32\drivers\etc’目录下。首先需要修改文件的可读属性,右键属性,取消只读选项勾选。
windows+s搜索记事本,右键以管理员身份运行记事本,再用记事本打开host文件位置。于最下行加入所选ip地址即可。
保存后windows+r打开cmd命令行输入ipconfig/flushdns刷新dns即可完成
若发现刷新后部分网站仍然上不了,可尝试tracert +IP地址(或域名)来查看路由器状态
1.4Host文件获取渠道
域名查找可在https://tool.chinaz.com/查找。具体使用可参考博客(166条消息) 解决国内 github.com 打不开的最最最准确方法_github打不开_杨大脸I的博客-CSDN博客
https://github.com/racaljk/hosts
https://coding.net/u/scaffrey/p/hosts/git
https://github.com/lennylxx/ipv6-hosts(ipv6)
注:本随笔仅为作者学习使用,总结并参考自以下文章:
- (166条消息) 解决国内 github.com 打不开的最最最准确方法_github打不开_杨大脸I的博客-CSDN博客
- hosts文件修改让你免费上google、twitter甚至不费流量(ipv6)的具体方法和原理 | OldWan Blog