首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使虚拟机IP (专用IP)地址公开/可供外部访问

使虚拟机IP (专用IP)地址公开/可供外部访问
EN

Stack Overflow用户
提问于 2021-02-06 15:46:44
回答 1查看 120关注 0票数 1

我目前正在开发虚拟主机软件(比如简单的Nginx/apache)。因此,代码基本上在运行时,在端口8080上侦听传入的web流量。

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

通过运行ifconfig eth0获取以下10.0.2.15的私有IP地址。因为web应用程序被托管在端口8080上的虚拟机器上。然而,要访问我需要在浏览器10.0.2.15:8080中输入的NAT服务器,10.0.2.15是在虚拟机器中运行的私有IP地址,如果没有NAT,则无法访问外部世界。

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

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-02-07 23:39:47

如果您想使用特定的外部浏览器访问内网IP,您可以简单地使用iptables进行一些特定的设置。

但是,如果你想通过随机的外部IP访问内网IP,这是比较困难的,因为NAT的设计一部分是为了内部网络的安全(另一方面是为了地址的扩展)。对于最常用的路由器NAT,这里有四种类型:完全锥形NAT、受限NAT、端口受限NAT和对称NAT。这四种类型的差异可以很容易地在谷歌上搜索到答案,所以我不想在这里重复。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66074656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档