搞定快照這張保命符後,我們的虛擬機已經具備了強大的實驗容錯率。從今天開始,我們要踏入虛擬化技術裡最常讓人撞牆、但也最關鍵的領域——虛擬機網路設定。
很多剛學 Linux 的同學在寫網頁後端、架資料庫或練習 SSH 連線時,常常會遇到這個經典謎團
「奇怪,我的 Ubuntu 虛擬機明明開 Firefox 就能順暢看 YouTube、查資料,但我用實體主機的瀏覽器輸入虛擬機的 IP,或是想用 VS Code 連進去,卻永遠顯示連線超時?」
今天我們就來拆解 VirtualBox 的預設網路設定-NAT模式。
1.虛擬機的 IP 怎麼怪怪的?
打開 Ubuntu 終端機(Ctrl + Alt + T),輸入查詢網路介面與 IP 的指令
ip addr
在輸出結果中,找到通常名為 enp0s3 的網卡資訊,你會看到一個很熟悉的 IP 位址inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
這時候切回你的 Windows 主機,打開命令提示字元(CMD)輸入 ipconfig,你會發現本機的 IP 可能是 192.168.1.100 或 192.168.50.23。
這就是為什麼實體電腦根本找不到虛擬機!
2.什麼是 NAT(Network Address Translation)?
NAT(網路位址轉譯) 是 VirtualBox 建立新虛擬機時的 預設網路模式。
你可以把 VirtualBox 想像成在你的實體電腦裡面偷偷架了一台微型虛擬路由器
為什麼它「只能出」?(單向通訊特性)
當 Ubuntu 想看網頁時
1.虛擬機把封包丟給 VirtualBox 的虛擬路由器。
2.虛擬路由器將封包偽裝成實體電腦發出的請求,借用實體網卡幫你向外面的實體路由器或網際網路索取網頁。
3.網頁資料傳回來時,虛擬路由器再把資料轉交給內部的 10.0.2.15。
因為是由虛擬機主動發起連線,虛擬路由器知道要把回傳的資料送給誰,所以虛擬機上網完全沒問題。
為什麼外部「連不進」?
相反地,如果實體 Windows 主機想主動連進 10.0.2.15
3.NAT 模式的優點與缺點
既然連不進去,為什麼 VirtualBox 還要把它當成預設值?
4.NAT 模式下的解法
如果我們想保留 NAT 隨插即用的安全便利性,又希望本機可以連進 Ubuntu 該怎麼辦?
1.設定連接埠轉發:在虛擬路由器上打一個洞(例如把本機的 2222 通道接到虛擬機的 22 通道),實體機就能穿透連線。
2.切換網路模式為「橋接介面」:讓虛擬機變成跟實體電腦平起平坐的獨立設備,直接向實體分享器領取一個獨立的真實 IP。
|明日目標:我們將實測「橋接介面」,並比較它與 NAT 的差異與適用時機!|