1. 程式人生 > >oracle virtualbox裡的宿主機和虛擬機器如何相互通訊?(使用NAT)

oracle virtualbox裡的宿主機和虛擬機器如何相互通訊?(使用NAT)

    在這裡需要了解三種網路連線方式(NAT、bridge adapter、host-only),在這就不闡述了,可以參考這篇博文:

https://blog.csdn.net/ixidof/article/details/12685549

    因為筆者使用的是NAT方式的網路連線方式,先介紹一下它的特點,Guest(NAT連線方式的虛擬機器)訪問網路的所有資料都是由主機提供的,Guest並不真實存在於網路中,主機與網路中的任何機器都不能檢視和訪問到Guest的存在。

    虛擬機器與主機的關係:只能單向訪問,虛擬機器可以通過網路訪問到主機,主機無法通過網路訪問到虛擬機器。所以帶來一個很大的問題,橋接方式很浪費ip,而NAT方式主機卻不能訪問到虛擬機器,SSH遠端訪問和在主機上使用虛擬機器的服務就是個大問題了。

    查閱了一些資料,最後使用了一種埠對映的方式,即在virtualbox中對虛擬機器的nat方式設定了埠轉發(例如如果一個外部主機試圖通過HTTP訪問外網的IP加相應埠,就可訪問到相應的內網建立的伺服器。),不同於埠對映(是將一臺主機的內網(LAN)IP地址對映成一個公網(WAN)IP地址,當用戶訪問提供對映埠主機的某個埠時,伺服器將請求轉移到本地區域網內部提供這種特定服務的主機;)。


    在這裡,訪問127.0.0.1:222就轉發到虛擬機器的10.0.2.15:22,這樣可以完成SSH遠端登入,當然,我們的虛擬機器需要安裝ssh服務,眼尖的大佬可能看到了下面的8008轉發到了80埠,其實我是在虛擬機器中搭建了一個nginx服務。


    參考博文:(1)http://www.elecfans.com/dianzichangshi/20171204593654.html

                     (2)https://blog.csdn.net/ixidof/article/details/12685549

                     (3)https://blog.csdn.net/zero_295813128/article/details/51159805