Dnsmasq


Dnsmasq简单快速搭建DNS服务器

环境准备

服务器:腾讯云lighthouse,1c1g
镜像:CentOS7.6
用户:root

安装

yum install -y dnsmasq
systemctl start dnsmasq.service
systemctl enable dnsmasq.service

配置

vim /etc/dnsmasq.conf
46 #resolv-file= -> resolv-file=/etc/resolv.dnsmasq.conf  //上级dns服务配置
58 #no-resolv//不依上游赖服务器的dns,即服务器未找到解析不向上级dns服务器查询
111 #listen-address= -> listen-address=your_srv_ip_addr 
128 #no-hosts -> no-hosts //不依赖服务器的hosts
131 #addn-hosts=/etc/banner_add_hosts -> hostsdir=/etc/dnsmasq/dnsmasq.d //dns解析文件目录
557 #cache-size=150 -> #cache-size=0 //不设置缓存

添加dns上游服务器

vim /etc/resolv.dnsmasq.conf
nameserver 183.60.82.98 #2条记录为腾讯云vpc网络dns服务器
nameserver 183.60.83.19

创建dns解析文件目录,dnsmasq动态检查该目录下所有的记录

mkdir -p /etc/dnsmasq/dnsmasq.d

事例:

vim /etc/dnsmasq/dnsmasq.d/test
1.1.1.1 www.test.com
vim /etc/dnsmasq/dnsmasq.d/example
1.1.1.2 www.example.comm

热加载

新增dns解析立刻生效,但修改解析会缓存,造成记录平权负载均衡

创建热加载脚本

vim /etc/dnsmasq/reloaddns.sh
chmod +x /etc/dnsmasq/reloaddns.sh
#!/bin/bash
pid=`netstat -ntpl | awk -F '[/ ]*' '/dnsmasq/ {print $7}' | uniq`
kill -1 $pid

修改dnsmasq服务配置文件

vim /usr/lib/systemd/system/dnsmasq.service
[Unit]
Description=DNS caching server.
After=network.target

[Service]
ExecStart=/usr/sbin/dnsmasq -k --dns-forward-max=10000
ExecReload=/etc/dnsmasq/reloaddns.sh

[Install]
WantedBy=multi-user.target

使dnsmasq的systemd配置文件生效

systemctl daemon-reload
修改dns解析需要重新加载配置文件
systemctl reload dnsmasq.service

声明:Sigma|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Dnsmasq


附着于石,取些皮毛