首先呢,来自知乎的一些问答:修改 hosts 文件可以上一些墙内屏蔽的网站,其原理是什么?
(然而通过增/改hosts的方法来FQ已经失效很久了)
然后呢,也可以通过修改hosts来达到屏蔽某些网站的效果:(以度娘测试)
1.用文本编辑器打开hosts文件(可能需要管理员权限)
(mac)
$ vi /etc/hosts
2.
在最后加上一行
127.0.0.1 www.baidu.com
保存退出,OK
现在在浏览器敲入度娘地址就会显示无法访问了。
hosts相当于一个字典,如果查到输入的域名在hosts中,则会先调用其对应的IP,而不通过DNS,因此可以通过手动添加修改(错误的) <ip-网址 >以达到(屏蔽某网站的)目的。
至于为什么要把ip指向本机地址127.0.0.1,部分原因可能是 http://my.oschina.net/flashsword/blog/99068
比如我在safari中把 ping www.weibo.com得到的 180.149.134.141
作为hosts 中www.baidu.com 的ip 映射,总是不能得到很好的结果。
最后,如果能做到像chrome 的插件 Block Site一样的效果就更好了,不过Block Site 免费版总是会有新的弹窗要你买付费版有点不爽
ref1: 为了方便用户记忆,我们将IP变成一个个的域名来输入到浏览器进行访问。而这使得访问网站时要先将其域名解析
成 IP 。DNS (Domain Name Server) 的作用就是进行 IP 解析,把域名对应到 IP。
ref2: Hosts 文件本来是用来提高解析效率。在进行 DNS 请求以前,系统会先检查自己的 Hosts 文件中是否有这个地址
映射关系,如果有则调用这个 IP 地址映射,如果没有再向已知的 DNS 服务器提出域名解析。也就是说 Hosts 的
请求级别比 DNS 高。当你的 Hosts 文件里面有对应的 IP 时,它就会直接访问那个 IP,而不用通过 DNS。
ref3: 127.0.0.1是回送地址,指本地机,一般用来测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback
Address),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使
用回送地址发送数据,协议软件立即返回,不进行任何网络传输。