Hosts 的概念
Hosts 是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从 Hosts 文件中寻找对应的 IP 地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交 DNS 域名解析服务器进行 IP 地址的解析。Hosts 的请求级别比 DNS 高。
Hosts 文件格式
127.0.0.1 localhost 127.0.0.1 http://www.baidu.com 192.168.1.2 http://test.cn
域名解析流程:

根据以上流程,我们就可以从 hosts 文件上做手脚,将广告的相关域名解析为 127.0.0.1,这个地址是本机回送地址(Loopback Address),主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输 。也就使用了 127.0.0.1 广告域名 的配置 hosts 文件,请求广告的网络请求发送,从而不能展示广告,这样就达到去广告的目的。关于去广告方案留在下篇展开。
除了去广告的应用,还应用在科学上网、断开特定连接。修改 hosts 文件就可以避免 DNS 污染。经常看一下破解提示就是需要在 hosts 文件添加 127.0.0.1 域名来使软件无法连接网络。
修改 hosts 文件
接下来关键问题就是如何修改 hosts 文件,hosts 文件存放目录:
- Window 目录 C:WindowsSystem32driversetc
- Linux 及其他类 Unix 操作系统:/etc
- Android 目录/system/etc/
编辑修改以上目录下的 hosts 文件。目前实现方式有许多形式,最直接的就是使用文件管理器将获取的 hosts 文件覆盖系统的 hosts 文件。
刷新 DNS 缓存
【Windows】 按下 Windows R 键,运行 cmd ,在命令提示符运行命令 ipconfig /flushdns
【OS X 10.9】【OS X 10.10.4 】在[应用程序][实用工具][终端]运行命令 sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
【OS X 10.10】 在[应用程序][实用工具][终端]运行命令 sudo discoveryutil udnsflushcaches
【OS X 10.7 ~ 10.8】 在[应用程序][实用工具][终端]运行命令 sudo killall -HUP mDNSResponder
【Linux】 在[终端]运行命令 /etc/rc.d/init.d/nscd restart
【Android、iOS】 重新启动设备
最新 hosts 文件的获取渠道
github:https://github.com/racaljk/hosts或https://coding.net/u/scaffrey/p/hosts/git
https://github.com/lennylxx/ipv6-hosts(ipv6)
找到最快的 IP
http://tool.chinaz.com/speedworld/github.com