使用docker搭建dnsmasq

本文最后更新于:2022年6月21日 下午

关闭默认dns服务解决53端口被占用问题

1
2
systemctl stop systemd-resolved
systemctl start systemd-resolved

docker启动命令

1
2
3
4
5
6
docker run --name dnsmasq -d  --net=host \
--cap-add=NET_ADMIN \
-v /home/baymax/dns/dnsmasq.conf:/etc/dnsmasq.conf \
-v /home/baymax/dns/resolv.conf:/etc/resolv.conf \
--log-opt "max-size=100m" -e "HTTP_USER=admin" -e "HTTP_PASS=admin" \
--restart always jpillora/dnsmasq

注意:

本文未使用 –privileged,使用–cap-add和–cap-drop对功能进行细粒度控制

DNS配置

修改/etc/resolv.conf目录下的nameserver为本机ip

登录(http://localhost:8080)进行配置

注意

配置成功后直接在页面进行修改保存,启动即可

配置文件demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 配置上行DNS
resolv-file=/etc/resolv.conf
# resolv.conf DNS寻址从上到下
strict-order
# DNS解析hosts时对应的hosts文件,对应no-hosts
addn-hosts=/etc/hosts
cache-size=1024
# 多个IP用逗号分隔,192.168.x.x表示本机的ip地址,只有127.0.0.1的时候表示只有本机可以访问。
# 通过这个设置就可以实现同一局域网内的设备,通过把网络DNS设置为本机IP从而实现局域网范围内的DNS泛解析(注:无效IP有可能导至服务无法启动)
listen-address=127.0.0.1,192.168.168.4
# 重要!!这一行就是你想要泛解析的域名配置.
address=/baymax.bb/192.168.168.1
address=/blog.bb/192.168.168.1
address=/103.bb/192.168.168.2
address=/dns.bb/192.168.168.4
address=/gitlab.bb/192.168.168.4
#指定使用哪个DNS服务器进行解析,对于不同的网站可以使用不同的域名对应解析。
server=/google.com/8.8.8.8

#国内指定DNS
server=/bb/192.168.168.4
server=/cn/114.114.114.114
server=/com/8.8.8.8

相关命令

  • nslookup
  • dig
  • ping

reference


使用docker搭建dnsmasq
https://baymax55.github.io/2022/09/13/dns/使用docker搭建dnsmasq/使用docker搭建dnsmasq/
作者
baymax55
发布于
2022年9月13日
许可协议