在Mac OS X上安装dnsmasq来支持hosts泛解析

有一个叫做dnsmasq的软件,它能提供类似DNS缓存的功能,可以用它来实现很强大的泛解析功能。

下面以OS X Mavericks做例子,来讲述如何安装使用DNSMASQ,来实现谷歌服务直连。

Mac安装DNSMASQ

要安装dnsmasq,你需要先安装Homebrew

它自称“OS X 不可或缺的套件管理器”。

安装Homebrew

请打开终端(应用程序>实用工具),并运行

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

你需要按照提示来继续安装。这个过程或许会很慢,受限于网络状况。如果实在很慢,你可以在VPN环境下安装。

安装完成之后,你就可以使用brew命令来安装dnsmasq了。

安装并配置dnsmasq组件

仍然在终端运行

brew install dnsmasq

等待安装完成后,请在/usr/local/文件下新建一个etc文件夹。

现在把/usr/local/opt/dnsmasq/dnsmasq.conf.example文件拷贝至并重命名为/usr/local/etc/dnsmasq.conf

在刚刚的/usr/local/etc/文件夹下新建一个resolv.dnsmasq.conf文件。

用sublime text,textmate,bbedit等纯文本编辑器打开这个resolv.dnsmasq.conf文件,输入以下内容

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 42.120.21.30
nameserver 168.95.1.1

这些都是你常用的DNS地址,你可以添加更多,比如OpenDNS。

用sublime text,textmate,bbedit等纯文本编辑器打开同文件夹下的dnsmasq.conf文件,增加以下内容

resolv-file=/usr/local/etc/resolv.dnsmasq.conf
strict-order
no-hosts
cache-size=32768
listen-address=127.0.0.1

这就是最简单的配置文件。需要说明的是,listen-address后面的可以是多个IP用英文逗号隔开,例如你写listen-address=127.0.0.1,192.168.1.102,其中192.168.1.102是你的计算机的内网IP,就可以实现同一个局域网内的设备,通过设置DNS为这个IP,来实现都通过你的dnsmasq来查询dns,即局域网范围内的DNS泛解析。

要运行并且开机自动运行dnsmasq,在终端运行

sudo cp -fv /usr/local/opt/dnsmasq/*.plist /Library/LaunchDaemons
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

现在,你可以通过把Mac系统的DNS改为127.0.0.1来使用dnsmasq。同局域网的用户也可以修改DNS到此台Mac的IP即可。前提是要把此台Mac的局域网IP写到listen-address里。

dnsmasq dns config

要检查运行情况,你可以在终端运行

dig g.cn

来检查是否在使用本地的dnsmasq进行dns解析。

DNSMASQ 泛解析

上面只是安装好了dnsmasq,下面来具体介绍DNSMASQ的泛解析功能,来突破墙,实现谷歌服务直连。要添加规则,只需在dnsmasq.conf文件里追加内容即可。

DNSMASQ的泛解析规则是这样的:

address=/baidu.com/1.1.1.1

这意味着,*.baidu.com/*都将被引导至IP为1.1.1.1。

Google 服务泛解析

下面来添加适用于谷歌大多数服务的泛解析规则。

首先需要寻找Google一个可用的IP。它最好是位于美国的服务器,这样能保证大多数服务可用。

已知Google现在一个可用的IP是74.125. 204.166。(注意,此 IP 在您现在阅读的这段时间并不一定有效)

追加规则:

address=/google.com/74.125.204.166
address=/googleapis.com/74.125.204.166
address=/googlevideo.com/74.125.204.166
address=/google.com.hk/74.125.204.166
address=/youtube.com/74.125.204.166
address=/ytimg.com/74.125.204.166
address=/ggpht.com/74.125.204.166
address=/googleusercontent.com/74.125.204.166

这基本上涵盖了绝大多数谷歌服务。把这些规则追加到dnsmasq.conf文件里即可。

Wikipedia 服务泛解析

下面提供一组维基百科的泛解析规则:

address=/wikipedia.org/91.198.174.192
address=/wikimedia.org/208.80.154.224
address=/upload.wikimedia.org/198.35.26.112

重启dnsmasq来应用

在修改之后你不会立即看到效果,因为有缓存效果。

在终端运行:

sudo launchctl stop homebrew.mxcl.dnsmasq
sudo launchctl start homebrew.mxcl.dnsmasq
sudo killall -HUP mDNSResponder

即可刷新缓存并重新启动dnsmasq服务。

Chrome用户还可以在Chrome://net-internals/#dns清理缓存。

转载于:https://my.oschina.net/u/912681/blog/676252

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值