繁体   English   中英

使虚拟机 IP(私有 IP)地址公共/可供外部访问

[英]Making a Virtual machine IP (private IP) address public/accessible for outside

我目前正在研究 web 托管软件(如简单的 Nginx/apache)。 因此,代码基本上在运行时会在端口 8080 上侦听传入的 web 流量。

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

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

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

谢谢

如果你想使用特定的外部浏览器访问私有的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等一些成熟的技术可以实现它们,您可以使用它们来满足您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM