跳到主要内容

配置dnsmasq作为内网DNS

1. 安装

centos:yum install -y dnsmasq

ubuntu:sudo apt install dnsmasq

2.配置dnsmasq.conf

vi /etc/dnsmasq.conf

#缓存过期时间,单位为秒
local-ttl=3600
#缓存记录的条数
cache-size=1000000
#并发数
dns-forward-max=100000
#监听地址
listen-address=127.0.0.1,192.168.0.2
#指定上游DNS服务器配置文件,也可以直接使用resolv.conf
resolv-file=/etc/resolv.dnsmasq.conf
#同时向所有上游DNS查询结果并返回响应最快的
all-servers
#开启日志
log-queries
#日志记录路径
log-facility=/var/log/dnsmasq/dnsmasq.log
log-async=100
#其他配置文件路径
conf-dir=/etc/dnsmasq.d
#不使用/etc/hosts的配置,默认使用,私有域数量少的情况下可直接修改hosts文件改解析,数量多的情况下按域名区分配置文件便于管理
#no-hosts

3.配置域名解析

vi /etc/dnsmasq.d/local.conf

address=/k8s-node1/192.168.1.41
address=/k8s-node2/192.168.1.42
address=/k8s-node3/192.168.1.43

4.配置上游DNS解析规则

vi /etc/dnsmasq.d/server.conf

#因为dnsmasq是顺序匹配,所以不建议配置过多解析规则
server=/cn/114.114.114.114
server=/aliyun.com/223.5.5.5
server=/google.com/8.8.8.8
server=/apple.com/168.95.1.1
server=/qq.com/119.29.29.29
server=/taobao.com/223.5.5.5
server=/tencent-cloud.net/119.29.29.29
server=/tencent.com/119.29.29.29
server=/tencent-cloud.com/119.29.29.29
server=/tencentmusic.com/119.29.29.29

5.启动服务

systemctl enable dnsmasq --now