Linux 将多个内部 IP 映射到一个外部 IP

Linux Map many internal IPs to one external IP

我有一台 Linux 机器有许多服务需要从外部用户访问,每个服务都有一个端口,我怎样才能让所有这些服务都可以通过一个外部 public IP 访问?

谢谢。

您需要在您的路由器上启用端口转发或 NAT。对于 Linux 机器上的每个内部端口,您将创建一个端口转发到路由器上 Linux 机器的名称端口号和 IP 地址。

例如,如果您希望外部用户通过端口 80 (web) 连接到 IP 地址为 192.168.1.20 的 Linux 机器,那么您将在路由器上创建一个端口转发以打开外部端口 80 并将其转发到端口 80 上的 IP 地址 192.168.1.20。因此,如果外部人员想要连接到 Linux 机器,他们将使用您的 PUBLIC IP 地址和端口 80。

您不必总是将外部端口与内部端口匹配,但它确实使设置和应用程序更容易识别,即默认使用端口 80 的 Web 浏览器。

基于此描述...

A few VMs on Linux server machine and each using Internal IP which wanna each VM service accessible from outside via one public IP.

解决方案是设置linux服务器(运行管理程序)使用iptables,然后配置iptables将连接请求转发到外部IP上的特定端口通过到一些端口在适当的内部 IP 上。

这里有更详细的描述:

如果您 Google "iptables port forwarding",还有很多其他相关资源。