自己建立dns服务器(搭建内网的DNS服务器)
#centosyum -y install dnsmasq,下面我们就来聊聊关于自己建立dns服务器?接下来我们就一起去了解一下吧!
自己建立dns服务器
1. 安装dnsmasq2. 配置dnsmasq#centos
yum -y install dnsmasq
#ubuntu
apt-get -y install 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. 测试配置文件使用如下命令检查配置文件是否正确:
4. DNS缓存dnsmasq -test
要在单台电脑上以守护进程方式启动dnsmasq做DNS缓存服务器,编辑/etc/dnsmasq.conf,添加监听地址:
listen-address=127.0.0.1
如果用此主机为局域网提供默认 DNS,请用为该主机绑定固定 IP 地址,设置:
listen-address=192.168.x.x
这种情况建议配置静态IP.
多个ip地址设置:
5. 测试listen-address=127.0.0.1,192.168.x.x
安装网络工具
sudo yum install bind-utils
测试:
6. 可视化界面dig www.baidu.com
● 下载从 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该进程。
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com