通过修改 hosts 文件实现科学上网访问谷歌

最近刚完成两个项目,一个H5,一个小程序,所以一直没有更新博客和公众号文章。今天终于有空来管管我的小天地啦。

在中国,怎么科学上网是一个长期讨论的问题。习总书记说,互联网不是没有界限的,每个国家都应该有自己的互联网领域。但是,科学交流、技术探讨,都需要通过互联网与外界沟通,所以科学上网显得尤为重要。

今天,我就分享一下怎么科学上网——修改hosts 系统文件。

不要觉得修改系统文件是件很难的事情,我自己摸索一圈下来,发现过程其实很简单的。

有三种方法修改。

  • 第一个方法:自己动手修改hosts。

找到hosts的文件位置,C:\Windows\System32\drivers\etc。hosts 文件是一个没有后缀名的文件。网上有很多教程说要用什么特定的工具打开,格式才不会混乱。我的方法比较傲娇,直接用记事本打开。

接着,github 有个良心项目叫 hosts,最有用的链接是https://coding.net/u/scaffrey/p/hosts/git/raw/master/hosts。打开后面这个链接,使用全选(control + A),复制(control + C),将内容粘贴(control + V)到个人电脑的 hosts 文件中,最后记得保存(control + S)。

最后,需要刷新 DNS 缓存。我的电脑是 Windows 10 ,使用快捷键 Win + R ,通过 CMD 进入命令行,输入以下命令即可刷新 DNS:

ipconfig /flushdns

如果使用 MAC 或者 Linux 系统的同学,请参考第二个方法。
image

得到上面的结果,基本上就可以科学上网了,如果不行,试试断开网络或者开闭飞行模式后,再使用命令行刷新 DNS 。

如果能访问 Google 和维基百科等网站,但是打开国内的网站,比如百度等,出现提示:找不到服务器 DNS 地址,如下图所示,请看文后的解决办法。
image

  • 第二个方法:老D的博客。

这里是链接地址
https://laod.cn/hosts/2017-google-hosts.html
博客给出了老D自己开发的一个修改 hosts 的 ba t文件,按照他说的操作步骤就可以轻松修改 hosts 啦。

优点:1.不用自己找hosts文件,2.修改 hosts 后还能恢复到原来的正常配置。

缺点:隔一段时间就得访问老D的博客,下载最新的 hosts 文件。

  • 第三个方法:利用两个开源的项目。

hosts+switchs,前者就是第一个方法中提到的提供 hosts 镜像文件的开源项目。后面这个是管理 hosts 文件的工具,顾名思义就是 hosts 文件的开关。如果需要访问境外网站,那么就可以打开含有境外网站镜像的 hosts 开关,这个工具自动将准备好的镜像文件复制到本地。可以帮助我们管理自定义的 hosts 文件,比如公司内部的 hosts 。

优点:可以自动更新 hosts 文件,只需要创建组的时候选择 remote 就可以远程获取 hosts 项目上的镜像文件。

缺点: switch 的兼容性堪忧,我的电脑打开小工具就会报错,难道是我气场太强?

最后,可能部分同学会遇到 DNS 被劫持的问题。被劫持后的情况各不相同,我遇到的主要表现为,电脑能正常联网,登录 QQ,但是无法访问国内网站,访问 hosts 文件中的镜像文件却很流畅。

问题出在 DNS 被篡改。一般电脑的 DNS,如下图矩形框中是自动从路由器获取的。可是,偶尔会出现 DNS 会被悄悄地更改成固定 DNS,比如之前就使用翻墙软件更改过 DNS,这时就会出现找不到服务器 DNS 地址的错误。
image

先尝试着手动更改为自动获取 DNS,此时应该能正常访问国内网站,过一会儿又被篡改成固定值,那就需要下载杀毒软件扫描并清理一下。

我下载了 360 安全卫士,不料这货好得过头了,把我的 hosts 文件变成了大写 HOSTS 而且限定我不能更改文件,替换也不行。所以清理完垃圾后就卸载吧(360:心碎),再重新启动计算机,重新写一个 hosts 文件替换被 360 更改后的 HOSTS 文件。

至此,done !

经过两天的亲测,修改后的 hosts 工作良好。除了不能播放Youtobe网上的视频外,查查资料什么的都比某度好太多。