簡體   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