1. 从github上下载最新的hosts文件:https://serve.netsh.org/pub/ipv4-hosts/ git

ubuntu16.04:
第二步:Ctrl+Alt+T 打开ubuntu的命令终端,输入命令: sudo gedit /etc/hosts,输入密码。
第三步:将刚才在github上复制的hosts文件的内容拷贝到# The following lines are desirable for IPv6 capable hosts以前,保存退出。
第四步:在命令终端输入:/etc/init.d/networking restart重启网络。
第五步:在浏览器输入https://www.google.ee/?gws_rd=ssl 便可看到访问google网站。github
win7:
第二步:找到路径C:\Windows\System32\drivers\etc,可在这个文件夹下看到hosts文件,打开将从github上复制下的内容所有粘贴到这个文件中(清清除文件原有的内容),保存。
第三步:在浏览器输入https://www.google.ee/?gws_rd=ssl 便可看到访问google网站。ubuntu
修改hosts的原理:浏览器
为了方便用户记忆,咱们将IP变成一个个的域名来输入到浏览器进行访问。而这使得访问网站时要先将其域名解析成 IP 。DNS (Domain Name Server) 的做用就是进行 IP 解析,把域名对应到 IP。
在 Great FireWall 的 5 种封锁方法中,有一种简单而效果很好的方法是 DNS 污染。GFW 会对 DNS 的解析过程进行干扰,这会使对某些被干扰的域名返回一个错误的 IP 地址给你的主机,使你没法正确链接到你要的服务器上读取正确的信息。
Hosts 文件原本是用来提升解析效率。在进行 DNS 请求之前,系统会先检查本身的 Hosts 文件中是否有这个地址映射关系,若是有则调用这个 IP 地址映射,若是没有再向已知的 DNS 服务器提出域名解析。也就是说 Hosts 的请求级别比 DNS 高。当你的 Hosts 文件里面有对应的 IP 时,它就会直接访问那个 IP,而不用经过 DNS。
因此,
当咱们直接将 Google、Twitter、Facebook 之类的 IP 放入 Hosts 文件后,就能够跳过 DNS 的解析这一步,直接就行 IP 访问,不受 GFW 的 DNS 污染干扰了。 补充一条,就是为何 Hosts 的 IP 要时不时更改,为何 FB、Twitter 会仍旧上不去。是由于 GFW 的第二个大招,IP 封锁。好比访问国外一个 IP 没法访问,Ping 不通,tracert 这个 IP 后发现,所有在边缘路由器 (GFW) 附近被拦截。换言之,GFW 直接拦截带有这个 IP 头的数据包。因此,若是你更改的 IP 被封锁了,就算你过了 DNS 这一关,也仍旧不能翻过 GFW。