背景
本文采用的是DNSmasq,其支持静态和动态两种DHCP配置方式。
本文示例是通过单独一台机器作为dns服务器实现转发。
安装
前提准备
- 安装docker
- 可访问公网
- 部署DNSmasq服务的机器,本文为:10.0.0.61
下载镜像
docker pull jpillora/dnsmasq
配置文件
mkdir -p /data/images/dns
vim /data/images/dns/dnsmasq.conf
配置文件内容:
#dnsmasq config, for a complete example, see:
#http://oss.segetech.com/intra/srv/dnsmasq.conf
#不加载本地的 /ettc/hosts文件
no-hosts
#本地缓存时间
local-ttl=3600
#另一个DNS服务地址
server=192.168.250.1
#开启日志选项
log-queries
#异步log,缓解阻塞,提供性能
log-async=100
#最大缓存条数
cache-size=1000000
#DNS转发最大值
dns-forward-max=1000000
#需局解析的域名配置
address=/nicole.com/192.168.104.248
address=/bernie.com/10.69.80.54
启动dns
docker run \
--name dnsmasq \
-d -p 53:53/udp \
-p 8080:8080 \
-v /data/images/dns/dnsmasq.conf:/etc/dnsmasq.conf \
--log-opt "max-size=100m" \
-e "HTTP_USER=admin" \
-e "HTTP_PASS=W@gs2021*" \
--restart always \
jpillora/dnsmasq
测试
- 选择任一台与搭建dns服务器网络相同的机器上进行配置
vim /etc/resolv.conf
配置文件内容:
nameserver 10.0.0.61
- 访问网络
ping bernie.com