搭建内网的DNS服务器
温馨提示:这篇文章已超过604天没有更新,请注意相关的内容是否还可用!
1.安装dnsmasq
#centos
yum -y 安装 dnsmasq
#ubuntu
apt-get -y 安装 dnsmasq
2.配置dnsmasq
关键的配置文件有3个:
● 主配置文件,安装后自动生成
/etc/dnsmasq.conf
● 添加需要内部解析的地址和域名
/etc/dnsmasq.hosts
● dnsmasq的上游DNS服务器,可以复制reslove.conf配置文件为resolv.dnsmasq.conf,添加nameserver
/etc/resolv.dnsmasq.conf
编辑 /etc/dnsmasq.conf 配置文件:
# 指定上游dns服务器
解析文件=/etc/resolv.dnsmasq.conf
#严格按照resolv-file文件中的顺序从上到下进行DNS解析
严格秩序
#监听地址
监听地址=10.0.0.1
#使用DNS服务器
服务器=119.29.29.29
#防止dns劫持
伪造的 nxdomain=119.29.29.29
#指定域名解析到特定IP
地址=/www.hanyibo.com/192.168.0.3
#本地域名配置文件(不支持通用域名),添加内部地址和需要解析的域名(重新加载生效)
addn-hosts=/etc/dnsmasq.hosts
#服务器可以使用无法访问的DNS服务器来解析无法访问的网站。下面表示对于谷歌的服务,使用谷歌的DNS解析
服务器=/google.com/8.8.8.8
主要配置说明:
解析文件
定义 dnsmasq 从何处获取上游 DNS 服务器的地址,默认情况下它从 /etc/resolv.conf 获取。
严格秩序
表示严格按照resolv-file中的顺序从上到下进行DNS解析,直到第一次解析成功。
收听地址
定义dnsmasq监听的地址,默认监听本机所有网卡。
地址
启用泛域名解析,即自定义解析一条记录,例如:address=/long.com/192.168.115.10 所有访问long.com的域名都会解析为192.168.115.10
伪造的 nx 域
对于任何解析到该IP的域名,都会响应NXDOMAIN使解析失效,可以指定多次
通常用于访问不存在的域名,禁止其跳转到运营商的广告站点
服务器
指定用于解析的 DNS 服务器。 对于不同的网站,可以使用不同的域名进行相应的解析。
例如:server=/google.com/8.8.8.8 #表示对于google服务,使用google的DNS解析。
3.测试配置文件
使用以下命令检查配置文件是否正确:
dnsmasq-测试
4.DNS缓存
要在单台计算机上将 dnsmasq 作为 DNS 缓存服务器作为守护进程启动,请编辑 /etc/dnsmasq.conf 并添加监听地址:
监听地址=127.0.0.1
如果使用本主机为局域网提供默认DNScentos搭建web服务器,请使用本主机绑定固定IP地址,设置:
监听地址=192.168.xx
这种情况建议配置静态IP。
多ip地址设置:
监听地址=127.0.0.1,192.168.xx
5.测试
安装网络工具
sudo yum 安装 bind-utils
测试:
挖
6.可视化界面
● 下载相应版本下载所需的可执行文件。
● 安装
解压缩可执行文件centos搭建web服务器,然后安装:
webproc --configuration-file /etc/dnsmasq.hosts --dnsmasq --no-daemon
如果你想作为守护进程运行,你可以将--no-daemon 更改为--daemon。
注意:使用多个 --configuration-files 可以同时加载多个配置文件。
7.解析配置
1、自动分析
可以在/etc/dnsmasq.conf中添加如下配置来添加自动解析规则:
地址=/.map.fyx.ingress.local/10.8.202.135
地址=/.map.fyx.ingress.local/10.8.202.136
地址=/.map.fyx.ingress.local/10.8.202.137
地址=/.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 测试.fyx.com
表示 test.fyx.com 解析到 10.8.202.131 服务器。
8. 常见问题
8.1 Affress 已经在使用中
使用sudo lsof -i:53查看当前占用的端口,然后kill进程。