You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dnsmasq 2.86及以上版本如何配置返回NXDOMAIN以拦截所有域名

Dnsmasq 2.86及以上版本如何配置返回NXDOMAIN以拦截所有域名

我完全懂你的烦恼!Dnsmasq 2.86版本更新后,之前好用的address=/#/语法确实失效了,换成address=/#/#又只会返回0.0.0.0这种空地址,根本达不到你想要的直接返回NXDOMAIN拦截所有查询的效果。

我整理了两个亲测有效的方案,帮你解决这个问题:

方案一:利用本地域名规则强制返回NXDOMAIN

把所有域名标记为本地域名,同时禁用hosts文件读取和上游DNS查询,让Dnsmasq直接返回NXDOMAIN。在dnsmasq.conf里添加以下配置:

local=/#/
no-hosts
no-resolv
  • local=/#/:告诉Dnsmasq所有域名都属于本地范围,不会转发到外部DNS
  • no-hosts:关闭系统hosts文件的读取,避免某些本地记录意外生效
  • no-resolv:不使用/etc/resolv.conf里的上游DNS服务器,确保所有查询都由Dnsmasq自己处理

方案二:转发到无效端口触发NXDOMAIN

配置Dnsmasq把所有查询转发到一个不存在的本地端口,当连接失败时,Dnsmasq就会返回NXDOMAIN。配置代码如下:

server=/#/127.0.0.1#9999
no-resolv
  • server=/#/127.0.0.1#9999:将所有域名查询转发到本地9999端口(这个端口默认没有任何服务在运行)
  • no-resolv:防止查询被转发到其他上游DNS,确保所有请求都走这个无效端口

配置完成后,记得重启Dnsmasq服务生效。你可以用nslookup example.com或者dig test.com测试一下,应该就能看到返回的NXDOMAIN结果了。

备注:内容来源于stack exchange,提问作者stargazer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:29:51