close

現場(環境): Ubuntu 16.04   套件:virtualbox   

 


原因:

 

今天在ubuntu主機裏面建立了虛擬主機,

 

現在想把虛擬主機的服務向外提供。

 

所以要針對要用的PORT做反向NAT

 

 

處理方式:

 

1.前情提要!!

 

今天用ubuntu開立虛擬主機這件事情,要先注意一件事情。

 

也就是有沒有要做port foward,如果沒有要這樣用,

 

那恭喜你不需要特地做什麼就可以直接用了。

 

用不到port foward就代表兩件事情。

 

I. 你的虛擬主機是用Bridge模式。已經跟外網串接了。

 

II.你的虛擬主機是NAT模式,只是要做單機使用而已。

 

現在要來說重點:

 

如果你今天要用 Oracle Virtualbox Port forward功能,

 

ubuntu主機上你要特別注意。

 

你是用哪個帳號開啟Oracle VirtualBox!!!!

 

因為這會影響到你之後做Port Foward上的問題。

 

今天你是用root權限開。所有的port forward都沒有問題。

 

但若是用一般使用者權限開。你最重要的那些服務很可能無法做Port Forward

 

因為在linux系統上。一般的使用者帳號是無法啟用 Port 1 ~ 1024的。

 

所以會影響到什麼???

 

TCP-22 (SSH)TCP-80(HTTP)TCP-443(HTTPS….這些重要的服務都無法反向NAT

 

所以很重要。這要注意。

 

所以一開始要先定義好,你到底要怎麼使用Oracle VirtualBox!!!

 

以下面兩個例子來說:

(1

-->user:~# virtualbox

-->直接用使用者桌面上的Oracle  VirtualBox圖形開啟。

 

(2

user:~#sudo  virtualbox

 

雖然這兩個方式都可以開啟Oracle VirtualBoxe

 

如果你還沒有建立VM的狀況下,會發現兩邊出現的畫面相同。

 

如果已經建立VM了,你就會發現兩邊裏面存在的VM不一樣。

 

(1) 的開啟方式 是用一般使用者的權限開啟,這

 

這種時候你做Port ForwardPort 1~1024是無法被做反向的。

 

(2) 的開啟方式是用root的權限去開啟,

 

你再這狀況下。你Port Foward要怎麼做都行!

 

這就是一些比較需要先知到的訊息。

 


 

(1) & (2)的方法開VM port forward時,

 

都可以在外面的實體主機檢查一下狀況。

 

#ss -tnlp (檢查一下目前這台實體主機上運作了什麼Port)

 

如果有做Port forward

 

你使用的port 就會被當成是實體主機上的一個服務,而顯示再上面。

 

簡單測試一下就會發現。你在(1)上做的1~1024port fowrad都無法成立。

 

這也是我後來發現root & user開的VirtualBox使用上的差異。

 


 

最後要注意就是虛擬主機內的port port forward時,

 

絕對不可以跟外面的相衝突,原因就不多說明,經過上面的測試應該都會知道。

 

(2) 開啟virtualbox

 

依照上面的說明。

 

我會建議大家在linux上使用virtualbox的時候,都要sudo 去執行。

 

這樣才能確保你是用root權限執行,不會有一些不必要的狀況產生。

 

#sudo virtualbox

 

 

(3) Port forward

 

virtualbox內建立VM這階段我就不說明,

 

我直接來說做port forward的地方。

 

virtualbox開啟後,在工具列「file」的地方。

 

選擇「Preference」來處理相關設定。

 

 

選擇到「Network」選項,

 

這邊我們要用的是「 Nat Networks 」。

 

一開始什麼都沒設定時就是空白的。

 

可以到旁邊的「Adds new NAT network選項」增加NAT網卡的設定。

到這邊我們可以定義這張網卡的名稱 ( 這部份要記起來。因為你再VM選往卡時會挑選到)

 

Network CIDR網路部份他預設是:10.0.2.0/24 。可以直接沿用就好。

 

預設support DHCP會是打開的,

 

因為一般使用者選了NAT模式就想直接用了,

 

但我這邊是因為我想設portforward(要固定IP),

 

我不希望有DHCP 的出現,所以我把選項拿掉。

 

這邊設定完按OK就好。 這樣一張NAT網卡就設定好了。

 

 

 

再來就是到我們的VM主機那邊進行設定

 

右鍵 -->setting --> Network

 

找到正在使用的網卡,把Attached模式設定為NAT

 

並將Advanced打開來,選擇「Port Forwarding

 

 

 

打開後就可以開始設定相關IP對應。

 

Name的部份不用管它,他只是規則的紀錄。

 

Protocol部份可以選擇 TCP 或者 UDP

 

Host IP部份就是實體主機的IP位址

( 通常會留空白,讓他自己對應)

 

Host Port 要對應到實體主機的什麼port

 

Guest IP 虛擬主機的IP

(VM建議設定為固定IP的用意就在這裡)

 

Guest Port 虛擬主機的Port

 

通常我們比較要留心的是Host Port

 

因為今天對應到實體主機時,

 

可能會發生PORT已經被佔用掉要換PORT的狀況,

 

那這邊就要跟著調整。

 

例如:

 

10.0.2.241 (虛擬主機) 443

 

轉換成

 

123.45.67.89 (實體主機) :  8443

 

也就是原本虛擬主機內的443 port ,我們改用8443進行呈現。

 

 

 

這樣子修改完後。我們就可以去進行網頁的連線測試了。

 

當然你也可以先利用實體主機的指令確認一下到底有沒有轉成功。

 

看到下圖的8443出現,就代表我們的測試成功了。

 

 

(本篇完)

arrow
arrow
    全站熱搜

    IT001 發表在 痞客邦 留言(0) 人氣()