dnsmasq DNS服务

简介

1、dnsmasq是一款小巧的DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能。
2、dnsmasq可以解决小范围的dns查询问题,如果业务是跨机房、跨地区的话不建议使用dnsmasq做为dns解析服务器

部署

# 下载dnsmasq镜像
docker pull andyshinn/dnsmasq

# 创建上游DNS服务地址配置文件
mkdir -p /data/dns
cat >/data/dns/resolv.dnsmasqs<<EOF
nameserver 8.8.8.8
nameserver 114.114.114.114
EOF

# 创建内部IP与域名解析地址文件
cat >/data/dns/dnsmasq.hosts<<EOF
10.0.0.10 test1
10.0.0.20 test2
EOF

# 创建dns配置文件
cat >/data/dns/dnsmasq.conf<<EOF
#定义上游DNS服务器的地址
resolv-file=/etc/resolv.dnsmasqs
#顺序从上到下进行DNS解析
strict-order
#本地域名配置文件
addn-hosts=/etc/dnsmasq.hosts
#缓存条数
cache-size=100
#为防止DNS污染,使用参数定义的DNS解析的服务器。注意:如果是阿里云服务器上配置dnsmasq要启用此项。
bogus-nxdomain=114.114.114.114
#记录dns查询日志服务器
log-queries
#设置日志记录器
log-facility=/var/log/dnsmasq.log
EOF


# 运行DNS-SERVER容器
docker run -tid \
-p 53:53/tcp -p 53:53/udp -p 8080:8080 \
--cap-add=NET_ADMIN \
--name dns-server \
--hostname dns-server \
--restart=always \
-v /data/dns/resolv.dnsmasqs:/etc/resolv.dnsmasqs \
-v /data/dns/dnsmasq.hosts:/etc/dnsmasq.hosts \
-v /data/dns/dnsmasq.conf:/etc/dnsmasq.conf \
andyshinn/dnsmasq:latest

或
vim docker-dnsmasq.yml
version: "3"
services:
  dns:
    image: soulteary/docker-dnsmasq
    restart: always
	# 如果你需要一个简单的 Basic Auth 认证
    #environment:
    #  - HTTP_USER=user
    #  - HTTP_PASS=pass
    ports:
      - "53:53/udp"
      - "53:53/tcp"
      - "8080:8080"
    volumes:
      - /data/dns/resolv.dnsmasqs:/etc/resolv.dnsmasqs
      - /data/dns/dnsmasq.hosts:/etc/dnsmasq.hosts
      - /data/dns/dnsmasq.conf:/etc/dnsmasq.conf
docker-compose -f docker-dnsmasq.yml up -d


# 用nslookup测试
apt install dnsutils && systemctl restart networking
yum install bind-utils && systemctl restart network

#nslookup test1
Server: 192.168.81.100
Address: 192.168.81.100#53
Name: test1
Address: 10.0.0.10

#nslookup test2
Server: 192.168.81.100
Address: 192.168.81.100#53
Name: test2
Address: 10.0.0.20

#nslookup 10.0.0.10
Server: 192.168.81.100
Address: 192.168.81.100#53
10.0.0.10.in-addr.arpa name = test1.

#nslookup 10.0.0.20
Server: 192.168.81.100
Address: 192.168.81.100#53
20.0.0.10.in-addr.arpa name = test2.

posted on 2025-10-24 14:02  luokeli  阅读(2)  评论(0)    收藏  举报

导航