连接到使用 NAT 的 OpenVZ 容器

连接到使用 NAT 的 OpenVZ 容器

假设我没有足够的 IP 分配给每个容器,如果没有公共地址,人们将如何连接该容器?(对该容器使用 NAT)地址将是私有的,对吗?那么外部网络如何连接到它?

答案1

从任何 NAT 外部到内部建立连接的方式相同:通过端口转发。

您使用 iptables 将主机上的一个或多个端口转发到客户机上的一个或多个端口。不用说,您很可能能够将每个主机端口分配给单个客户机端口。例如,如果您有一个 Web 服务器的容器,您将需要转发端口 80 和 443。执行此操作后,其他容器将无法使用这些端口。

因此,如果您需要提供多个 Web 服务器容器,您可能需要考虑在主机或客户机上运行反向代理,以检查 HTTP 主机标头/URL 并代理连接到适当的位置。

答案2

我的方法如下:

  • 使用单独的全局可路由 IPv6 地址运行每个容器。
  • 在单个全局可路由的 IPv4 地址上运行反向代理。代理可以使用Host标头(对于 http)和 SNI(对于 https)将每个客户端代理到适当容器的 IPv6 地址。
  • 此外,容器和外部网络之间的网关可以为您的容器提供 Teredo 和 6to4 中继,这样使用其中一种隧道方法的客户端就可以获得与您的 IPv6 地址的可靠连接。

相关内容