早上在oschina上看到DNSmasq的更新信息,于是心血来潮的在阿里云主机上搭建了自己的dns服务器,以下是我的搭建过程及配置。
###安装DNSmasq###
在Dibian下可以使用以下命令
sudo apt-get install dnsmasq
在Centos下可以使用以下命令
yum -y install dnsmasq
###配置DNSmasq###
DNSmasq的配置文件是 /etc/dnsmasq.conf 这个配置文件的内容全都是注释了,里面的内容要么是示例,要么是默认值。
我们主要修改以下参数:
server 该参数是设置上游DNS服务器,当dnsmasq不存在的记录,会请求上游服务器,我们一般可以填写google的dns服务器 8.8.8.8 和 8.8.4.4;
server=8.8.8.8
server=8.8.4.4
需要注意的是较老版本中这个使用的名字是nameserver
listen-address 监听地址 设置服务器监听的地址,可以填写服务对外网或内网的地址,如192.168.1.3,要是这台服务器的地址
listen-address=192.168.1.3
需要注意的是,这个如果不设置,其他电脑将可能无法使用dns服务
好了,设置好以上参数后,服务器基本上已经可以使用了,要使配置生效,还需要重起DNSmasq服务
service dnsmasq restart
service dnsmasq stop
service dnsmasq start
###测试DNSmasq###
在客户机修改 resolv.conf 文件 将nameserver设置为192.168.1.3
nameserver 192.168.1.3
linux使用dig命令测试
dig www.google.com
......
;; Query time: 205 msec
;; SERVER: 192.168.1.3#53(192.168.1.3)
;; WHEN: Sun Apr 13 17:39:03 2014
;; MSG SIZE rcvd: 478
windows可以使用nslookup
C:\Users\Team>nslookup baidu.com
服务器: UnKnown
Address: 192.168.1.3
非权威应答:
名称: baidu.com
Addresses: 220.181.111.86
220.181.111.85
123.125.114.144
恭喜你已经成功搭建好自己的dns服务器了!
###设置解析###
我们自己的dns服务器可以设置解析规则,由两种形式,host方式和dnsmasq方式
host方式
需要在/etc/dnsmasq.conf配置文件中指定host文件路径
addn-hosts=/etc/dnsmasq.host/hostsx
host文件的格式和windows 的规则一样,前面写ip地址 后面写域名
127.0.0.1 www.apple.com
#每行一个记录
dnsmasq方式
配置记录可以只接写在/etc/dnsmasq.conf文件中,也可以在/etc/dnsmasq.d/新建一个文件, 名字随意,重起时dnsmasq会自动读取该目录下的所有文件。
dnsmasq有自己的格式如下可以使用IPv6
address=/double-click.net/127.0.0.1
address=/www.thekelleys.org.uk/fe80::20d:60ff:fe36:f83`
#支持泛解析
address=/.loftor.com/127.0.0.1
需要注意的是每次修改后都需要重启服务
设置完成后再ping下你设置的,是不是成功了!
###奇葩应用###
- 翻墙
- 广告屏蔽
- 防止dns污染
- 剩下的想象空间