不要自动在 DNSMasq 地址中包含所有子域名

不要自动在 DNSMasq 地址中包含所有子域名

是否可以配置 DNSMasq,使其仅为该精确域的请求返回固定 IP 地址,而不为其子域返回固定 IP 地址?也就是说,我希望它在解析 时返回固定 IP example.com,但不在a.example.comb.example.com等时返回。

答案1

host-record=example.com,1.2.3.4

dnsmasq 手册页说:

–host-record = <名称> [,<名称>....] [<IPv4 地址>],[<IPv6 地址>]
将 A、AAAA 和 PTR 记录添加到 DNS。这会将一个或多个名称与关联的 IPv4 (A) 和 IPv6 (AAAA) 记录一起添加到 DNS。一个名称可能出现在多个主机记录因此可以分配多个地址。只有第一个地址会创建一个 PTR 记录,将该地址与名称联系起来。这与读取主机文件时使用的规则相同。主机记录选项被视为在主机文件之前读取,因此如果名称也出现在主机文件中,则出现在那里的名称会阻止 PTR 记录的创建。与主机文件不同,名称不会扩展,即使 expand-hosts 有效。短名称和长名称可能出现在同一个主机记录,例如 --主机记录=laptop,laptop.thekelleys.org,192.168.0.1,1234::100

答案2

你的配置文件怎么样?如果你的条目以点开头,dnsmasq 将仅解析子域名.

例子:address=/.subdomain.pc01.domain.com/192.168.1.2

如果你有这样的情况:

address=/subdomain.pc01.domain.com/192.168.1.2

它还将解决asd.subdomain.pc01.domain.com

$ host asd.subdomain.pc01.domain.com
asd.subdomain.pc01.domain.com has address 192.168.1.2

答案3

来自dnsmasq 的手册页(适用于--server,但也适用于--address):

更具体的域名优先于不太具体的域名,因此:--server=/google.com/1.2.3.4 --server=/www.google.com/2.3.4.5 会将对 *.google.com 的查询发送到 1.2.3.4,但对 *www.google.com 的查询除外,它将发送到 2.3.4.5

因此,我能想到的唯一解决方案是为每个必要的子域添加单独的记录。显然不是最理想的,但这是 dnsmasq 目前可以提供的最好的解决方案(我能找到的)。

答案4

只需在运行 DNSMasq 的服务器上的 hosts 文件中添加该特定域的条目即可

相关内容