【问题标题】:Redirect with DNS使用 DNS 重定向
【发布时间】:2026-01-18 13:05:02
【问题描述】:

我需要进行透明重定向(用户不会在地址栏中看到地址更改)。当用户键入 example.com 时,他/她应该被重定向到 123.123.123.123:9090 (IP:PORT)。我不能使用 CNAME 或 A,因为它不接受 PORT。我怎样才能做到这一点?我知道使用 SRV 我可以做到这一点,但我的网络服务器不允许这样做。

我还尝试在 Apache 上使用 mod_proxy 重写来自域 example.com -> 123.123.123.123:9090 的请求,但是这是荒谬的,因为用户请求内容,apache 向我的 IP 请求内容,然后响应必须一路回升。我需要用户请求在没有代理的情况下直接访问网络服务器。

【问题讨论】:

  • 神圣的炎性称号蝙蝠侠。冷却你的喷气机。
  • 嗯,DNS 不关心端口,只关心主机名。
  • 你应该把它移到 serverfault 它会得到更好的响应。
  • DNS Record with port的可能重复
  • 在俄罗斯求救的人侮辱你。

标签: php dns


【解决方案1】:

嗯,DNS 不关心端口,只关心主机名。这就是为什么您可以访问像example.com:8080 这样的每台 服务器(尽管99% 的服务器可能会失败;))。那么当我尝试通过example.com:8080 请求您的网站时会发生什么?端口是 8080 还是 9090 优先?

长话短说:没有办法绕过代理。但更简单的方法是让它直接监听 80 端口。

【讨论】:

  • 你错了。我可以使用 mod_proxy 或反向域来使用 IP:PROXY。我还可以使用 SRV DNS 记录,它可以完美地工作并且是透明的。但是由于我的服务器配置,这对我不起作用。
  • "你错了。我可以使用 mod_proxy 或反向域来使用 IP:PROXY。" 你知道,“mod_proxy”或“反向代理”是什么?右:代理;)