如何为公共域设置Linux DNS名称服务器(通配符DNS)

资料来源:pexels.com

通常,您只会使用注册了域名的公司的DNS服务器(例如GoDaddy)。 您甚至可能没有注意到它。

但是,为什么要使用自己的名称服务器呢? 好吧,对我来说答案很简单:

我需要使用通配符DNS条目。 这些是什么? 假设您拥有以下域:

shop.example.com

您有一个托管您的商店的网络服务器。 但是您想多元化。 你要:

shoes.shop.example.com

food.shop.example.com

clothes.shop.example.com

全部都转到该Web服务器的相同IP地址。 您可以手动进行设置,但是有些公司不允许您创建子域的子域(例如“鞋子”)。 另外,这很耗时,因为每次销售新类别时都必须这样做。

请检查您的域名注册商是否支持这些。 如果没有,您将遇到与我相同的问题。 我们走吧:

您需要一个Linux服务器。 这可能是其他服务器在做其他事情,因为这不需要很多性能。

我使用Ubuntu Server 16.04和“ bind9”名称服务器。 您可以使用’ apt update’ ,然后使用’ apt install bind9 -y’进行设置 。 不要安装“绑定”!

那应该很快进行。 如果您有防火墙,请打开端口53(TCP和UDP)。 如果您不知道自己是否有一个,那可能就不知道了。

转到目录“ / etc / bind”并按如下所示编辑文件:

填写时的注意事项:

  • 记住named.conf.local中的分号(;)
  • named.conf.local中的第二行:shop.example.com。 (请记住最后的点!)和’info.shop.example.com’==’info@shop.example.com’。 令人不安,但事实就是如此

最后一行是最重要的一行:“ *”表示,shop.example.com下的所有域都转到1.2.3.4。 那就是我们想要的。

现在运行“ systemctl restart bind9”以重新启动服务。

您还需要进入域管理并创建该子域“ shop.example.com”。 然后,输入NS记录,而不是输入A记录。 默认情况下,应将此设置为自己的。 现在将其更改为已经指向您的服务器的域名。 就我而言,我不能只使用IP地址。

由于DNS是具有大量缓存的分散式系统,因此它最多可能需要24小时才能运行。

您可以使用“挖掘”工具进行分析。 您可以将其安装在名称服务器或您自己的计算机上。

运行’shop.example.com ns(at)8.8.8.8’。 这问谷歌DNS(公共DNS服务器)名称服务器是为您的域。 它应使用您在域管理中指定的名称服务器的DNS名称进行答复。

运行’test123.example.com(at)1.2.3.4’。 用服务器的IP替换IP。 您应该看到一个指向您的Web服务器的A记录。

运行’test123.example.com(at)8.8.8.8’。 这应该给您相同的结果-但是这一次,它询问Google DNS。 如果这有效,它将对每个人都有效。

现在,“ test123”可以通过“鞋子”,“衣服”,“汽车”之类的东西替换,而无需进行设置,它始终指向您的Web服务器。