配置内部 NAT 网络来处理外部 DNS 请求的最佳方法是什么?即:
- 域名“example.com”指向路由器 WAN 端口上的我的公网 IP 地址。
- 内部网络的 DNS 服务器位于“ns1.example.com”。
- 来自外部网络的客户端想要连接到“web-server.example.com”。
- 来自外部网络的客户端想要连接到“confluence.example.com”。
- 'ns1.example.com' 解析客户端和用户是否可以连接到它们。
我不想只是简单地将一堆东西端口转发,并为我的所有 SSH、RDP 和 Web 服务器配置一堆端口重定向。我希望子域可以通过 NAT 访问。这是否需要在路由器上配置,以便将所有查询重定向到 ns1.example.com?反向代理是否可行?越简单越好。
答案1
假设您想要运行的所有服务都是 HTTP/HTTPS,那么您将需要 DNS 服务和反向代理。
权威 DNS 服务
您将需要至少两个托管区域的 DNS 服务器。其中一个可以在 NAT 后面运行,另一个则不能。在这种情况下,最佳设置可能是 NAT 后面的主区域,可通过外部的端口转发访问,以及互联网上某个地方的从属区域。
完成该设置后,您可以使注册表指向您的域名的名称服务器,并添加指向您的 NAT IP 的服务记录。
选择: 只需在您的提供商的 Web 界面或其他地方配置 dns-zone 即可。
反向代理
安装一个反向代理(Apache、nginx、varnish 等),用于处理所有服务的 HTTP/HTTPS 流量。为指向该代理的 80/tcp 和 443/tcp 设置 NAT 端口转发。
工作原理
当客户端想要连接时,yourservice.example.com
它将解析该名称的 DNS 并获取您的 NAT IP 地址。然后,客户端将连接到 80/tcp 或 443/tcp 上的 NAT 地址,并将端口转发到您的代理。
客户端现在要么发送带有 Host-Header 的 HTTP 请求,要么使用 SNI 发起 SSL 握手。在这两种情况下,反向代理都将能够看到请求的目的yourservice.example.com
,然后可以将请求转发到正确的应用服务器。