A Coder

Coding My Dream!

0%

Debian 中搭建 DNSmasq

> DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。

早上在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下你设置的,是不是成功了!

###奇葩应用###

  1. 翻墙
  2. 广告屏蔽
  3. 防止dns污染
  4. 剩下的想象空间