【问题标题】:How can I include a port in my domain?如何在我的域中包含端口?
【发布时间】:2013-12-22 05:11:48
【问题描述】:

也许我以一种奇怪的方式问这个问题,但我会在这里解释我的目标:

我想让我的域 example.com 指向我的 ip 1.2.3.4.5:42,例如(不是真正的原因)如果我在家里的 42 端口上托管了 Minecraft 服务器,人们不会不必输入 example.com:42,只需输入 example.com。我通常知道它指向 80 端口,但我知道我尝试完成的事情至少是可能的。

我自己使用的是 Windows server 2012,但为了将来的使用和其他用户,尝试为 Windows 和 Linux 回答这个问题可能是个好主意。

子问题:为什么我不应该像 Teamviewer 那样在端口 80 上运行我的应用程序?

【问题讨论】:

  • 这不仅不是 StackOverflow 的主题,而且使用 TCP/IP 也无法实现
  • 您可以在主服务器上使用 iptables/firewald/router 将所有到端口 80 的请求重定向/NAT 到您的家庭计算机的端口 42。因此您的最终用户会看到所有内容都来自您的主服务器
  • @Rowland Shaw 如果它偏离主题,我很抱歉,但它适用于我的应用程序,所以我真的认为它是主题。我只是简化了我的问题并说它是针对 Minecraft 的,但事实并非如此。
  • example.com 不一定意味着端口 80,尽管 http://example.com 确实如此。如果您从 Minecraft 中连接到 example.com,它将使用其默认端口,即 25565。请记住,协议隐含(默认)端口,因此 ftp://example.com 隐含 example.com:21,因此 minecraft://example.com 隐含 example.com:25565 .
  • 首先告诉我们您计划在主服务器上使用哪种协议?

标签: dns port portforwarding


【解决方案1】:

您不能 - DNS 条目(SRV 记录除外)没有端口号的概念。

如果您的实际应用程序是 HTTP 而不是 Minecraft,您可以使用在默认端口上运行的 Web 服务器的 3xx 重定向代码将用户推送到非标准端口。然而大多数其他协议实际上并没有任何这样的重定向机制。

【讨论】:

  • @user2754599 是的,只是Location:标头中的URL还需要包含:port字段。您也可以使用 mod_rewrite 代替实际页面(或 PHP 脚本,这是您的建议)。
猜你喜欢
  • 2011-01-25
  • 2014-05-07
  • 2020-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
相关资源
最近更新 更多