如何使小型企业路由器后面的多个虚拟机可公开访问?

如何使小型企业路由器后面的多个虚拟机可公开访问?

为简单起见,假设我们在基本的小型企业路由器上有 3 个虚拟机,每个虚拟机都有自己的静态 IP 地址。配置“事物”以确保每个事物都可以公开访问的最佳方法是什么(它们都指向同一个家庭 IP 地址);

  • one.example.com
  • two.example.com
  • three.example.com
  • ns.example.com
  • smtp.example.com

即使在基本的小型企业路由器上,DMZ 通常也只能配置为所有入站流量的单个 IP 地址,或者如果您经常进行端口转发,则这仅限于基本静态选项,而不是全范围的端口。

我想知道实现这一结果的最佳方法是什么。例如,是购买更好的小型企业路由器吗?还是最好在路由器后面安装一个托管交换机,这样 DMZ 中的所有入站流量都可以指向该交换机,然后由交换机执行端口和主机名(这可能吗?)路由?

答案1

嗯,您已经知道如何操作了:使用端口转发。当然,一个端口只能转发到一个主机。因此,您最终会得到,比如说http://one.example.com,,,,…http://two.example.com:81http://three.example.com:82

如果您不想要这样,您必须使用反向代理(nginx,Traefik等)让其终止 TLS(如果有),然后根据标Host头转发到正确的主机。

使用 OpenWrt 或类似软件,您还可以在路由器上运行反向代理,但性能会受到限制。

(在包括这种情况在内的几乎所有情况下,DMZ 都是用词不当。您可以设置“暴露主机”。)

答案2

实施 IPv6。指定一个或多个 /64 子网来包含面向公众的内容,并从中分配 IP 地址。假设无法获取更多 IPv4 地址,这是获得

v4 仍然很棘手,尤其是入口。一个 IP 地址意味着您只能获得任何给定的知名端口之一,例如 443/tcp。端口转发到负载平衡器(可能基于反向代理),并将主机置于其后面。通过 http Host 标头或其他应用程序级别方案映射到后端服务器。

相关内容