#centosyum -y install dnsmasq,下面我们就来聊聊关于自己建立dns服务器?接下来我们就一起去了解一下吧!

自己建立dns服务器(搭建内网的DNS服务器)

自己建立dns服务器

1. 安装dnsmasq

#centos

yum -y install dnsmasq

#ubuntu

apt-get -y install dnsmasq

2. 配置dnsmasq

有三个关键配置文件:

● 主配置文件,安装后自动生成

/etc/dnsmasq.conf

● 添加内部需要解析的地址和域名

/etc/dnsmasq.hosts

● dnsmasq的上游DNS服务器,可以将reslove.conf配置文件复制为resolv.dnsmasq.conf,进行添加nameserver

/etc/resolv.dnsmasq.conf

编辑/etc/dnsmasq.conf配置文件:

# 指定上游dns服务器

resolv-file=/etc/resolv.dnsmasq.conf

#严格按照resolv-file文件中的顺序从上到下进行DNS解析

strict-order

#监听地址

listen-address=10.0.0.1

#使用DNS服务器

server=119.29.29.29

#防止dns劫持

bogus-nxdomain=119.29.29.29

#指定域名解析到特定的IP上

address=/www.hanyibo.com/192.168.0.3

#本地域名配置文件(不支持泛域名),添加内部需要解析的地址和域名(重新加载即可生效)

addn-hosts=/etc/dnsmasq.hosts

#可以通过server对不通的网站使用不通的DNS服务器进行解析。如下表示对于google的服务,使用谷歌的DNS解析

server=/google.com/8.8.8.8

主要的配置说明:

resolv-file

定义dnsmasq从哪里获取上游DNS服务器的地址, 默认从/etc/resolv.conf获取。

strict-order

表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。

listen-address

定义dnsmasq监听的地址,默认是监控本机的所有网卡上。

address

启用泛域名解析,即自定义解析a记录,例如:address=/long.com/192.168.115.10 访问long.com时的所有域名都会被解析成192.168.115.10

bogus-nxdomain

对于任何被解析到此 IP 的域名,将响应 NXDOMAIN 使其解析失效,可以多次指定

通常用于对于访问不存在的域名,禁止其跳转到运营商的广告站点

server

指定使用哪个DNS服务器进行解析,对于不同的网站可以使用不同的域名对应解析。

例如:server=/google.com/8.8.8.8 #表示对于google的服务,使用谷歌的DNS解析。

3. 测试配置文件

使用如下命令检查配置文件是否正确:

dnsmasq -test

4. DNS缓存

要在单台电脑上以守护进程方式启动dnsmasq做DNS缓存服务器,编辑/etc/dnsmasq.conf,添加监听地址:

listen-address=127.0.0.1

如果用此主机为局域网提供默认 DNS,请用为该主机绑定固定 IP 地址,设置:

listen-address=192.168.x.x

这种情况建议配置静态IP.

多个ip地址设置:

listen-address=127.0.0.1,192.168.x.x

5. 测试

安装网络工具

sudo yum install bind-utils

测试:

dig www.baidu.com

6. 可视化界面

● 下载从 http://github.com/jpillora/webproc/releases 下载对应版本需要的可执行文件。

● 安装

解压可执行文件,然后进行安装:

webproc --configuration-file /etc/dnsmasq.hosts -- dnsmasq --no-daemon

如果要以守护进程运行则可以把 --no-daemon 改为 --daemon。

注意:可以同时使用多个–configuration-file加载多个配置文件。

7. 解析配置

1.自动解析

可在/etc/dnsmasq.conf中增加如下配置添加自动解析规则:

address=/.map.fyx.ingress.local/10.8.202.135

address=/.map.fyx.ingress.local/10.8.202.136

address=/.map.fyx.ingress.local/10.8.202.137

address=/.map.fyx.ingress.local/10.8.202.131

该规则表示所有**.map.fyx.ingress.local**的子域名都会解析到10.8.202.135~10.8.202.137及10.8.202.131上。

2. 手动解析

手动解析可以修改/etc/dnsmasq.host文件,在其中增加解析配置:

10.8.202.131 test.fyx.com

表示将test.fyx.com解析到10.8.202.131服务器上。

8. 常见问题

8.1 Affress already in use

使用sudo lsof -i:53查看当前占用端口的经常,之后kill该进程。