如何在dnsmasq中配置域名拦截规则的子域名例外
如何在dnsmasq中配置域名拦截规则的子域名例外
嗨,这个问题其实很好解决!dnsmasq的规则是按从上到下的顺序匹配的,优先级是先出现的规则覆盖后出现的,所以只要把例外规则放在拦截规则前面就搞定了。
你只需要在dnsmasq.conf里做这两步:
- 先添加放行例外的规则:
server=/youtu.be/
这行的作用是告诉dnsmasq,对于youtu.be这个域名,直接用你配置的默认DNS服务器去解析,完全跳过后面的拦截规则。 - 然后保留你原来的拦截规则:
address=/be/
这行依然会拦截所有.be结尾的其他域名,不会影响到前面放行的youtu.be。
举个完整的配置片段例子:
# 先放行例外域名 server=/youtu.be/ # 再拦截所有.be结尾的域名 address=/be/
简单解释下原理:当dnsmasq收到youtu.be的解析请求时,会先匹配到上面的server规则,直接走正常解析流程;而其他.be结尾的域名(比如abc.be)会匹配到下面的address规则,被拦截处理。
如果你的拦截规则是指定了具体IP的(比如address=/be/0.0.0.0),这个方法同样适用,不需要修改拦截规则的写法。
备注:内容来源于stack exchange,提问作者user1038121
相关产品推荐
相关产品推荐

