一、开始之前,先跟大家脑补一下hosts文件,这是一个系统文件,存在于系统目录,windows系统一般在C:\Windows\System32\drivers\etc\hosts,它是一个无扩展名的文件,可以通过记事本等工具进行编辑,它的作用就是将网站域名与IP地址建立起对应关联关系,比如我们在浏览器打开
www.baidu.com这个网址时,系统首先会在hosts文件里查找其对应的IP地址,如果找到了,那么浏览器就会打开该IP对应的网站,如果没有找到,那么系统会将网址域名提交给域名服务器(DNS)进行域名解析,说白了,就是Hosts里域名IP的对应关系优先级比DNS域名服务器高一级,优先使用。
知道hosts文件的作用,我们再来说一下为什么有些网站被墙后我们就无法访问了,刚才说了,当我们打开一个网址的时候,系统会先在hosts文件里查找是否有域名IP对应记录,如果有,就直接打开该IP对应的网站,但如果没有,就会将域名提交给DNS域名服务器进行解析,那么问题就出现了,对于请求解析的域名,域名服务器可以正常解析,也可以不解析,甚至可以“胡乱”的解析,一些网站被墙的原因就是DNS域名服务器不给我们正常解析引起的,俗话称DNS污染,知道了这些,我们就可以通过修改hosts文件来实现访问墙外的网站了,因为hosts文件比DNS域名服务器优先嘛。
好了,大概原理就是这样,如果你实在是不理解也没关系,不影响你下面的操作。
二、下面来说下如何在不同的系统平台上修改hosts文件,
Windows系统
打开C:\Windows\System32\drivers\etc,找到hosts,然后用记事本打开,然后将从下列hosts里的内容覆盖到你的hosts文件里,然后保存重启计算机即可。
注意:如果遇到hosts文件无法保存的情况,这是因为没有写权限引起的,请右键点击hosts文件 -> 属性 -> 安全,然后选择你当前电脑的用户名,最后点击编辑,勾选"写入"点击确定即可,当然了,如果之前你的hosts文件有其他内容,那么你直接在后面追加就可以了。
Mac苹果系统
打开你的文件管理器(也就是Finder),然后,请按快捷键组合“Shift+Command+G”三个组合按键查找文件,并输入Hosts文件的所在路径:/etc/hosts,把下载好的hosts文件粘帖和覆盖该目录的hosts文件。然后终端输入sudo killall -HUP mDNSResponder使其生效。
Linux系统
打开/etc/hosts目录,把下载好的hosts文件粘帖和覆盖该目录的hosts文件。最后在终端输入sudo systemctl restart NetworkManager。
注意 : 非systemd发行版,终端输入sudo rcnscd restart,如果不清楚请两个都试一次。
Android系统
用RE管理器(前提需要手机已Root)打开/system/etc/hosts目录,把下载好的hosts文件粘帖和覆盖该目录的hosts文件。然后通过开启飞行模式 -> 关闭飞行模式的方式使其生效。