【发布时间】:2014-04-14 07:43:52
【问题描述】:
我有一个已经映射到domain.tld 的设备。我现在想为所有子域 *.domain.tld 创建一个通配符,以便它们也映射到 domain.tld 的 ip。
如何使用dnsmasq 执行此操作?
【问题讨论】:
标签: dns subdomain wildcard dnsmasq
我有一个已经映射到domain.tld 的设备。我现在想为所有子域 *.domain.tld 创建一个通配符,以便它们也映射到 domain.tld 的 ip。
如何使用dnsmasq 执行此操作?
【问题讨论】:
标签: dns subdomain wildcard dnsmasq
在dnsmasq.conf 文件中,添加一行
address=/.domain.tld/192.168.0.1
但是使用你真正想要的 IP 作为结束位
【讨论】:
虽然接受的答案可能已经解决了作者的问题,但它具有误导性,因为它暗示前导点将仅匹配子域,这是不正确的。
dnsmasq ignores 任何前导点,这样
address=/domain.tld/192.168.0.1
等价于
address=/.domain.tld/192.168.0.1
甚至
address=/......domain.tld/192.168.0.1
截至目前(dnsmasq v2.76),遗憾的是无法指定一些内容(server、address、ipset)
您唯一能做的就是为域名及其所有子域指定一些内容,并为特定子域覆盖它,例如
address=/domain.tld/192.168.0.1
address=/sub.domain.tld/10.10.0.1
这种单一域名的情况,可以用不同的选项来解决,例如host-record、srv-record,在某些情况下可能就足够了,但肯定不是全部。例如,如果您确实需要仅对单个域名使用 server 或 ipset 选项,则它不起作用。
【讨论】:
dnsmasq -p 5353 -k -C /tmp/dnsmasq.conf 并使用dig @127.0.0.1 -p 5353 sub.domain.tld 进行测试。无论如何,我不记得在任何特定版本的 dnsmasq 中都添加了这种覆盖设置。它基本上应该适用于任何 dnsmasq 版本。
address=.example/*/foo吗?似乎对我不起作用。
# 而不是*。
address=localhost.*/127.0.0.1的事情吗?那就是将任何具有 localhost 子域的主机指向 127.0.0.1?