如何将子域名映射到内部IP地址

如何将子域名映射到内部IP地址

我想通过专用子域名(例如)访问一些内部服务,例如我的 NAS(Synology DSM)的 Web 客户端https://nas.example.com

该服务已完全运行并可通过内部 IP 访问,例如https://192.168.0.200:5001

我显然拥有该域名example.com,并且有一个正在运行的 Apache 服务器。

我想实现上述目标主要有两个原因:

  • 子域名nas.example.com192.168.0.200:5001
  • 我想使用现有的 HTTPS 证书,但nas.example.com无法将其用于内部 IP 地址

我已经尝试过 Apache mod_rewrite,但完全没有成功。不幸的是,我无法判断这种情况是否可能,mod_rewrite或者只是我没有正确配置它。

一些说明:

  • 这些服务不应该从外部访问,而只能从我的 LAN 内部访问。
  • 理想情况下,当通过 SSH 隧道从外部连接到网络时,它们也应该可以通过子域访问。因此,像这样的专用 DNS 服务器dnsmasq不是我想要的,因为它只会处理来自 LAN 内部的请求(我猜……)。

答案1

使用 nginx 更容易,但 apache 也可以处理这个问题,使用mod_proxy

您应该为域 nas.mysite.com 设置一个虚拟服务器,并为该虚拟服务器启用反向代理:

ProxyPass "/"  "http://192.168.0.200:5001"
ProxyPassReverse "/"  "http://192.168.0.200:5001"

答案2

在以下情况下,不必设置反向代理:

这些服务不应该从外部访问,而只能从我的 LAN 内部访问。

nas.example.com只需创建指向你的 IP 地址的DNS 记录

nas.example.com. IN A 192.168.0.200

192.168.0.0/16 子网中的非互联网可路由 IP 地址仅在您自己的 LAN 内有效。

然后将 DSM Web 界面配置为在端口 80(HTTP 的默认端口)上运行,您将不再需要在 URL 中使用 5000 之类的端口号。

相关内容