鉴于国内的网络环境,有时候,我们需要修改 hosts 文件来实现访问国外著名网站的目的(翻墙)。本文介绍了在 Windows 下自动化更新 hosts 方法。
hosts 简介
有关 hosts 的作用和修改 hosts 文件实现翻墙的原理,可以参见 http://www.waylau.com/simple-way-to-implement-browsing-famous-overseas-web-sites-without-the-ladder-gateway-dns-hosts/ 。
hosts 源
hosts 源是指包含可用 Google 、YouTube、Google+、Facebook、Twitter、维基百科、App Store、Dropbox 等著名网站 IP 的 hosts 文件。有些网站专门会定期更新此类 hosts 源,比如: https://github.com/racaljk/hosts
环境
- Windows 7 : 64 位
- cURL : 版本 7.33
安装 cURL
下载 cURL
本例版本为: http://curl.haxx.se/download/curl-7.33.0-win64-ssl-sspi.zip
安装 cURL
解压下载包,将包内的 curl.exe
放到 C:/Windows/System32
目录。
验证
命令行下,执行
curl -V
看到版本号,则说明安装成功
制作批处理文件
新建一个 .bat 文件, 复制下面的内容到该文件
curl -k -o hosts https://raw.githubusercontent.com/racaljk/hosts/master/hosts move /Y hosts C:/Windows/System32/drivers/etc/hosts ipconfig /flushdns
双击 .bat 文件,则会自动执行 hosts 更新。
原理
- 第1句是指,使用 curl 将 url 的资源下载到本地命名为 hosts 的文件中。
-k
是忽略 SSL 验证的意思; - 第2句是指,将下载的 hosts 覆盖操作系统自带的 hosts
- 第3句是指,刷新网络设置