![为 localhost 的通配符子域创建 DNS](https://linux22.com/image/705862/%E4%B8%BA%20localhost%20%E7%9A%84%E9%80%9A%E9%85%8D%E7%AC%A6%E5%AD%90%E5%9F%9F%E5%88%9B%E5%BB%BA%20DNS.png)
我正在尝试为在本地主机上运行的通配符子域创建 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