多数时候dnsmasq只是一个小小的桥梁,它只能承载那些不大的希望。
Dnsmasq是一个非常好用的轻量DNS,但是随着Pi-hole的出现,传统的命令行与配置文件的方式在家用的环境下逐渐消失,但是在一些小规模的服务器环境上,dnsmasq依然有着其独特的优势##安装dnsmasq的安装非常简单,你可以选择从源码编译安装,当然对于dnsmasq这样一个已经非常长时间不更新的软件,我们只需要从包管理器那里安装。
bash apt install dnsmasq -y安装完成之后在/etc/目录下会出现dnsmasq.conf文件和dnsmasq.d目录##配置dnsmasq.conf默认就有全部的参数,但是如果只拿dnsmasq用做DNS服务器来说,很大一部分我们根本用不上,此时可以先备份这个文件,然后新建一个自己的配置文件
cp dnsmasq.conf dnsmasq.conf.baktouch dnsmasq.conf之后我们就可以细细研究了
pythonresolv-file=/etc/resolv.dnsmasq.conf ##该参数指定了dnsmasq的上游DNS,类似resolv.confstrict-order ##严格按照上述文件中的DNS顺序,对于国内喜欢“抢答”的DNS很有用no-resolv ##忽略本机的resolv.conf文件不推荐,这样操作对于后续更改并不是非常有利no-poll ##dnsmasq不检测resolv.conf等文件的变化这意味着更改之后需要重启dnsmasqno-hosts ##忽略本机的hosts文件addn-hosts=/etc/banner_add_hosts ##附加的hostscache-size=10000 ##dnsmasq的缓存条目数这是上限,但是缓存的条目依然会遵循ttlconf-dir=/etc/dnsmasq.d/*.conf ##附加的配置文件该目录下所有.conf都会被认为是配置文件clear-on-reload ##重启dnsmasq之后清除缓存listen-address=127.0.0.1,192.168.1.2 ##监听地址,局域网可以不填这一项常用的dns配置就是这些,配合hosts和一些附加的配置文件,我们可以做到动态的去广告。接下来重启dnsmasq
bash systemctl restart dnsmasq重启完成后,需要更改/etc/resolv.conf,添加nameserver127.0.0.1,并注释掉其他条目,这样就算初步配好了dnsmasq安装完成后使用
sh systemctl status dnsmasq查看服务运行情况,如果对应的配置文件不是/etc/dnsmasq.conf,而是/var/run/dnsmasq/resolv.conf,请参照另一篇文章解决[postcid=“31”/]##优化由于部分特殊需求,常常需要不同的DNS为访问加速,这对于经常使用国外资源的人群来说非常常见,dnsmasq为此提供了address参数,可以将指定域名转交给特定的上游DNS以获得最佳体验。
DNS优化在/etc/dnsmasq.d下新建一个附加配置文件speed.conf
address=/.taobao.com/119.29.29.29address=/.google.com/8.8.8.8这样就简单的实现了一不同域名不同DNS查询的功能,对于apple的一些域名我们可以强制使用香港服务器当然部分开源项目通过对特定域名抓取实现了基于DNS的广告屏蔽功能,相关的项目在github上一搜一堆,这里就不再详述了###hosts优化在addn-hosts指定的文件中添加hosts条目,等同于在/etc/hosts中添加。当然,在addn-hosts中添加不会更改已有的hosts文件,这对于一些具有特殊要求的群体可以实现快速的hosts切换等功能。