如何为不同的机器托管不同的子域名?

如何为不同的机器托管不同的子域名?

这是一个新手的问​​题,以前可能以某种形式被问过,我读过但不太明白。

我的情况如下:

目前,我正在运行 TS3Server 和域名 myname.ddns.net 。每次我都要告诉我的朋友/新来者“嘿,请连接到 myname.ddns.net:12321”。ddns.net 是由 no-ip 托管的免费域名,没有任何其他功能。我打算切换到另一家提供商,以获得付费的、更严肃的域名,如 myname.net,并完全控制所有 DNS 记录。我的计划是,我可以说“嘿,连接到 ts3.myname.net”,而不是说“连接到 myname.ddns.net:12321”。邮件服务器、云服务器、游戏服务器也是如此。例如 cloud.myname.net、mail.myname.net 等。

为什么关于 DNS 的工作方式,我作为个人无法告诉 .myname-DNS 服务器询问我自己的私有 DNS 服务器(例如 cloud.myname.net 位于何处)?!

我想要自己的 DNS 服务器,因为许多提供商限制了可用的子域数量,而且我不知道是否可以拥有子子域。因为有了 Teamspeak,我可以想象让我的朋友通过 ts3.myname.net 连接,并让他们通过 musicbot.ts3.myname.net 控制音乐机器人。这就是为什么我想完全控制我拥有的子域数量。

附言:评论中提到了 myname.tk,这是我注册的另一个域名,因为我不想要域名中间的 .ddns。而为我提供 myname.tk 的公司 Freenom 可以对 DNS 记录进行更复杂的控制。

答案1

我有一个相当简单的解决方案,尽管我首先承认它的性能并不高。由于我使用的是 ADSL,因此来自我家庭服务器的信息以我的上传速度下载,因此性能不是主要问题。

  • 因为我已经有了它,所以我使用了公共主机上的一个小型网站(相当于myname.Public.Host您的示例)。
  • 我的域名注册商提供域名注册和网站/电子邮件转发的最低限度服务套餐。
  • 我将我的主域名转发至公共网站(myname.Public.Host)。
  • 我使用网站文件夹而不是子域来寻址我的家庭服务器,这样(使用您的示例)我将使用 来寻址云服务器www.myname.tk/cloud,尽管我认为 CNAME 记录不能cloud.myname.tk指向相同地址(myname.public.host/cloud/)没有理由,尽管我还没有尝试过。
  • 我创建了myname.public.host/cloud/index.htm包含以下代码(抱歉,我无法承认该代码的来源,因为我丢失了参考):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>AFH - Web Server Home</title>
<META HTTP-EQUIV="Refresh" CONTENT="1; URL=http://myname.Dynamic.DNS/cloud">
</head>
<html>
  • 这就是我的使用方式,但对于我的 WebCam,我使用URL=http://myname.Dynamic.DNS:WebCamPort:我的路由器能够映射WebCamPort80WebCam 的 IP,而且这似乎运行良好:虽然我正在使用端口,但当以 身份访问网站时,这是完全透明的www.myname.tk/WebCam
  • 原则上,您可以使用相同的技术,因此myname.public.host/cloud/index.htm会将您转移到URL=http://myname.Dynamic.DNS:CloudPort等,不同的端口为您提供了一种简单的方式来寻址您内部网上的不同服务器。

总之,cloud.myname.tk将被转发到myname.Public.Host/cloud/index.htm并从那里传输到http://myname.Dynamic.DNS:CloudPort然后通过路由器到您的云服务器。

最后要说的是,我曾经一度难以找到可靠的动态 DNS 服务器,因此我实现了自己的服务器,每五分钟运行一次脚本,检查我家的公共 IP,每当 IP 发生变化时,就调用 FTP 脚本来更新index.htm每个文件夹中的文件,用 替换URL=http://myname.Dynamic.DNS ...URL=http://my.pub.IP.addr ...这在 Linux 中很容易,但在我的 Web 服务器所在的 Windows 上则更具挑战性)。

从这个答案的长度来看,您可能会质疑它的直截了当,但每个阶段都非常简单,我一步一步逐渐找到了这个解决方案,现在它运行可靠。在执行任何进一步的工作之前,您应该检查是否可以创建适当的 CNAME 记录。

答案2

不。您确实需要名称服务器的静态 IP - 否则服务将非常不可靠 - 特别是因为 NS 记录应该被大量缓存 - 并且在您的情况下需要将粘合记录添加到当局 DNS。

话虽如此,我最近读到 Namecheap 提供免费的名称服务器 - 即使您不通过他们注册域名。(该服务称为 FreeDNS,我从未使用过)您可以使用它们(或其他 DNS 提供商)来解决您的动态 IP 问题。然后,您可以明智地结合动态 DNS 提供商使用 cname 将内容指向您的家庭系统。

GOTCHA - 请注意,在域名根目录(即我的 name.tk)上使用 CNAME 将产生意想不到的后果 - 虽然这可用于允许您在动态 DNS 下运行自己的名称服务器,但最好避免这样做。

相关内容