Linux将许多内部IP映射到一个外部IP [关闭]

Posted

技术标签:

【中文标题】Linux将许多内部IP映射到一个外部IP [关闭]【英文标题】:Linux Map many internal IPs to one external IP [closed] 【发布时间】:2016-06-27 13:03:33 【问题描述】:

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

谢谢。

【问题讨论】:

你的(一台)Linux 机器上怎么会有多个“内部”IP? “内部”到底是什么意思? 抱歉有点混乱,Linux 服务器机器上的虚拟机很少,而且每个虚拟机都使用内部 IP,它们希望每个虚拟机服务都可以通过一个公共 IP 从外部访问。 【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

根据这个描述...

Linux 服务器机器上的一些虚拟机,每个都使用内部 IP,它们希望每个虚拟机服务都可以通过一个公共 IP 从外部访问。

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

这里有更详细的描述:

https://www.digitalocean.com/community/tutorials/how-to-forward-ports-through-a-linux-gateway-with-iptables

如果您在 Google 上搜索“iptables 端口转发”,还有许多其他相关来源。

【讨论】:

以上是关于Linux将许多内部IP映射到一个外部IP [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

路由器做端口映射之后,外部电脑怎么访问内部电脑上的网页?

Hyper-v 创建NAT网络

端口映射

NAT 穿透原理浅浅说 ---转发

关于端口映射的问题(如何将端口转发给域名)?

怎样使用端口映射,从外网能访问到内网服务器上