【问题标题】:Making a Virtual machine IP (private IP) address public/accessible for outside使虚拟机 IP(私有 IP)地址公开/可供外部访问
【发布时间】:2021-02-06 07:46:43
【问题描述】:

我目前正在开发网络托管软件(如简单的 Nginx/apache)。所以代码基本上在运行时会在端口 8080 上侦听传入的网络流量。

代码在 Ubuntu Linux 虚拟机上运行(因此它使用私有 IP)。我的问题是,如何从外部浏览器连接到私有 IP。

通过运行 ifconfig eth0 如果得到下面的10.0.2.15 的私有 IP 地址。由于 Web 应用程序托管在端口 8080 上的虚拟机上。要访问网络服务器,我需要在浏览器中输入10.0.2.15:8080,但是,10.0.2.15 是在虚拟框中运行的私有 IP 地址,如果没有外部世界的 NAT,则无法访问。

我希望我已经把我的问题说清楚了,我想找到一种方法让我的运行 Linux(具有私有 IP)的虚拟机可以访问外部世界。

谢谢

【问题讨论】:

  • 我在谷歌上找到的一篇文章slideshare.net/powerhan96/…
  • 我有点困惑为什么没有回复。如果您对答案有任何问题,请告诉我,以便我们改进。如果对您有帮助,请给我一个有用的赞或接受吗?这对我很重要

标签: networking virtualbox hosting web-hosting nat


【解决方案1】:

如果你想使用特定的外部浏览器访问私有IP,你可以简单地使用iptables做一些特定的设置。

但是,如果你想用随机的外部IP访问私有IP,这是比较困难的,因为NAT部分是为了内部网络的安全而设计的(另一边是为了地址的扩展)。对于最常用的路由器NAPT,这里有四种类型:Full Cone NAT、Restricted NAT、Port Restricted NAT和Symmetric NAT。四种类型的区别,google一下就很容易得到答案,这里就不再赘述了。

关键是你需要一个P2P traversal(也称为p2p pounch hole)来使NAT 规则不影响某些特定的内部IP,并且它可以很好地适用于前三种类型。 TURN/STUN/ICE等一些成熟的技术可以实现它们,您可以使用它们来满足您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多