2010年10月26日 星期二

教學:VirtualBox NAT port forwarding 新版用法

最近準備架個Hadoop來玩,可是又不一定能常常坐在實驗室,所以想把VirtualBox的NAT port forwarding打開來。


想歸想,可是網路上找了最常出現的指令全都不能用(可能是我技術差...= =a)

 
測試環境:VirtualBox版本:3.2.10
                   Host端--Win7 64bit
                   guest端--Fedora12
               

先來說說舊版的通用指令,一共有三行,在cmd中切換到VirtualBox的安裝目錄底下執行:
VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
 
VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
 
VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222

VM Name:指的就是你的虛擬機名字, 因應你要設定的 guest OS 在 VBox 下名稱而異

guestssh:是這個設定的名稱,可以隨意指定,但是三個指令都要一樣

22 指的是guest VM中的SSH port

2222假設是host要轉給guest VM的port

pcnet這一藍則是要看你Guest VM用的網卡是哪一張,如果是Intel系列的就要改成"e1000"

要移除指令,只要把上面三個指令去掉TCP還有port number後重打一次就行了。

 

一開始照著上面的方法依樣畫葫蘆,可是怎麼試就都是不行...

後來時在是沒辦法了,只好硬著頭皮去看Oracle(Sun被買走了...)的官方文件

一看完整個就是豁然開朗~~新版指令一整個簡單又明瞭許多!

新版指令只要一行,一樣在cmd中切換到VirtualBox的安裝目錄底下執行(記得使用新指令之前要把舊的移除掉!!) :

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
 
這樣就行了!指令下完後會顯示:
C:\Program Files\Oracle\VirtualBox>VBoxManage modifyvm "node02" --natpf1 "guestssh,tcp,,2222,,22"
Oracle VM VirtualBox Command Line Management Interface Version 3.2.10
(C) 2005-2010 Oracle Corporation
All rights reserved. 
設定完馬上就可以從遠端直接連線進到guest中的Fedora,而不用還得先遠端進win7才能操作了~XDD
測試方法:
先在host端打開pietty,主機位址輸入localhost,Port打入剛剛輸入的值
然後就可以連線囉~
如果要移除這個port forwarding,只要輸入以下指令就好
VBoxManage modifyvm "VM name" --natpf1 delete "guestssh"
如果要將所有的數據都轉入guest VM,輸入:
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,127.0.0.1,2222,,22"


大概就是這樣,祝大家玩得愉快XDD


參考資料:http://www.virtualbox.org/manual/ch06.html#natforward






沒有留言:

張貼留言