2012年1月6日星期五

dnsmasq-支持通配符的本地DNS cache

必须先说一句,用修改hosts的方式也可以实现本地域名解析的功能,
但dnsmasq与之相比的一大优势就是支持通配符(当然还可以用于构建DHCP,TFTP服务器,在此不赘述).于是,正题.
首先安装dnsmasq,archlinux里直接pacman -S dnsmasq即可.
然后根据你的dhcpclient决定下一步:
1.如果你用的是dhcpcd,终端运行如下命令,使第一个DNS服务器设为本地地址:
echo "nameserver 127.0.0.1" > /etc/resolv.conf.head
2.dhclient则在/etc/dhclient.conf加入如下一行,意义同上:
prepend domain-name-servers 127.0.0.1;
然后打开/etc/dnsmasq.conf,把"#listen-address="一行改成"listen-address=127.0.0.1"(不包括引号,其实就是服务器地址),
再加入域名解析数据,假设我们要将所有域名格式为*.no.thing的网站指向同一IP(如0.0.0.0),
则格式是"address=/no.thing/0.0.0.0"(不带引号),各占一行即可.
最后要提的是,别忘了开启dnsmasq服务,也就是sudo /etc/rc.d/dnsmasq start了,如果有兴趣的话,还可以加入rc.conf的daemon列使其开机时自动启动(此法arch限定,其他系统自行搜索吧).