FTP/HTTP 服务器的 DNS 记录

FTP/HTTP 服务器的 DNS 记录

我刚刚使用 Freenom 注册了一个免费域名,我计划将其用于我的单台设备,该设备既是 FTP 服务器又是 HTTP 服务器。我已设置以下 DNS 记录(未使用真实名称):

|NAME | TYPE  |      TARGET      |
----------------------------------
| www |   A   |   99.99.99.99    |
|     | CNAME |   www.foo.tk     |

当我输入 foo.com 或 www.foo.tk 时,我可以访问服务器上运行的网站。但当我想访问 FTP 服务器时,我总是必须输入ftp://foo.tk或者ftp://www.foo.tk

现在我想要做的是,我可以通过输入例如 ftp.foo.tk 来访问我的 FTP 服务器,通过输入 web.foo.tk 来访问 HTTP 服务器

有可能吗?如果可以,该怎么做?

答案1

我建议对不同的服务使用不同的 IP,即使在同一台机器上运行它们。

当然,如果可能的话。否则,您可以为 ftp 服务使用另一个 CNAME 记录,但是:

  • 两个名称的 IP 相同
  • 即使使用相同的 IP,Web 服务器也可以管理不同名称的不同 Web 服务(配置取决于您使用的服务器)
  • ftp 协议不知道域名,只知道它正在监听的 IP,因此它对每个域名的工作方式都相同(ftp://ftp.foo.tkftp://www.foo.tkftp://foo.tk)。

因此 DNS 条目看起来会像这样。

|NAME | TYPE  |      TARGET      |
----------------------------------
| www |   A   |   99.99.99.99    |
| ftp | CNAME |   www.foo.tk     |
|     | CNAME |   www.foo.tk     |

答案2

这种设置有时会起作用,但如果服务器有缓存,许多服务器就会抱怨它并给出错误的结果。

DNS 标准不支持使用与任何其他记录同名的 CNAME 记录,因为 CNAME 应该代表另一个名称的别名(而不仅仅是“A”记录类型)。您的区域“foo.tk”至少需要名称 foo.tk 上的 SOA 记录,因此它不能有 CNAME。

www.foo.tk. CNAME foo.tk. is OK
foo.tk. CNAME www.foo.tk. is NOT OK

简单的解决方法就是将其设置为正好相反:

|NAME | TYPE  |      TARGET      |
----------------------------------
|     |   A   |   99.99.99.99    |
| www | CNAME |   foo.tk         |

相关内容