为 localhost 的通配符子域创建 DNS

为 localhost 的通配符子域创建 DNS

我正在尝试为在本地主机上运行的通配符子域创建 DNS。

无法正常工作。主域名没有问题,但子域名却指向外部服务器。

以下是我所拥有的:

在 /etc/named.conf 中:

zone "typeflex" IN {
    type master;
    file "/var/named/typeflex.zone";
    allow-update { none; };
};

在 /var/named/typeflex.zone 中:

$TTL    86400;
@   IN SOA typeflex.com.    hostmaster.typeflex.com. (
    20170101        ; serial
    3h              ; refresh
    1h              ; retry
    1w              ; expiry
    1d              ; minimum
    )

    IN  NS  typeflex.com.
    IN  A   127.0.0.1

@                       IN A            127.0.0.1
*                       IN A            127.0.0.1
*.typeflex.com.         IN A            127.0.0.1
www                     IN CNAME        typeflex.com.

答案1

更改zone "typeflex" IN {zone "typeflex.com" IN {并确保运行rndc reload以使更改生效。

然后确保您的 /etc/resolv.conf 使用:

nameserver 127.0.0.1

...而不是任何其他名称服务器。

还要确保您的绑定配置允许从环回(127.0.0.1)进行递归查找。

答案2

您的区域不是针对TLD 的typeflex.com.,而是针对TLD 的typeflex.typeflex.com正在运行,因为/etc/hosts会覆盖其 DNSA记录。对于每个子域,将改用权威 DNS 服务器。

如果您有localhost递归 DNS 服务器,则不需要在您的服务器中添加任何相关内容/etc/hosts;只需为其创建一个权威区域typeflex.com.并添加:

$ORIGIN typeflex.com.
@ IN SOA ...
@ IN A 127.0.0.1
* IN A 127.0.0.1

相关内容