1. dnsmasq简介

DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,它提供了DNS功能和可选择的DHCP功能,它服务那些只在本机和局域网可用的域名,这些域名是不会在全球的DNS服务器中出现的,既不能通过外网访问。本文主要实现:使用dnsmasq通过缓存来加速dns解析,提高上网速度,以及比hosts更强大的域名重定向功能,为在本机测试二级域名提供了很大的方便。

2. dnsmasq安装

1
sudo apt-get install dnsmasq

3. dnsmasq配置

(1)dnsmasq的配置文件为/etc/dnsmasq.conf,编辑该文件,添加:
listen-address=127.0.0.1
cache-size=150
(2)添加新的DNS服务器

1
sudo vim /etc/resolv.conf

最上面添加 nameserver 127.0.0.1
就可以使用127.0.0.1即本地的dnsmasq作为dns服务器了。dnsmasq默认会使用/etc/resolv.conf中的nameserver来作为自己的上游dns服务器,你也可以自己指定dns服务器,
(3)用dnsmasq代替hosts文件
普通hosts文件配置很方便,但是不支持通配符,像*.app.com 192.168.x.x是不可以的,但dnsmasq是支持的,编辑dnsmasq.conf,添加:address=/.tuli.com/192.168.x.x

4. 启动,重启,终止dnsmasq

1
2
3
sudo /etc/init.d/ dnsmasq start
sudo /etc/init.d/ dnsmasq stop
sudo /etc/init.d/ dnsmasq restart

5. 测试重定向

打开浏览器,输入www.app.com alexzhou.app.com xxx.app.com等,结合nginx做反向代理就可以成功的打开应用了。

6. 测试dns缓存

1
2
3
4
5
6
7
8
9
10
11
12
13
digwww.google.com
......
;; Query time: 205 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Aug 16 13:39:03 2012
;; MSG SIZE  rcvd: 478
digwww.google.com
......
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Aug 16 13:39:07 2012
;; MSG SIZE  rcvd: 46

第一次Query time:205毫秒,第二次0毫秒,dns解析速度明显提升。
ps:dig命令是一个用于查询 DNS 域名服务器的工具,它执行 DNS 搜索,显示从受请求的域名服务器返回的信息,在 unix 和 linux 下,建议使用 dig 命令来代替 nslookup