文字模式管理 VirtualBox 虛擬機器
文字模式管理 VirtualBox 虛擬機器by Jamyy on 十月.15, 2008, under Linux
環境:
VirtualBox 2.0.2
Fedora 9 (x86_64), runlevel 3, 未安裝 X window 相關套件
安裝 VirtualBox
至 http://www.virtualbox.org/wiki/Linux_Downloads 下載 VirtualBox for Fedora 9 ("Sulphur") - AMD64
# yum -y install kernel-devel kernel-headers gcc libxslt.x86_64
# rpm -ivh --nodeps VirtualBox-2.0.2_36488_fedora9-1.x86_64.rpm
# usermod -a -G vboxusers someone (讓 someone 可建立虛擬機器)
日後若更新 kernel, 需執行 /etc/init.d/vboxdrv setup 重新編譯 VirtualBox kernel module
建立 Virtual Machine
建立並登錄虛擬機器
VBoxManage createvm -name "CentOS 5" -register
虛擬機器基本設定: 記憶體大小、是否啟用 ACPI、第一開機順位裝置、網路類型
VBoxManage modifyvm "CentOS 5" -memory "256MB" -acpi on -boot1 dvd -nic1 nat
建立並登錄虛擬硬碟
VBoxManage createvdi -filename "CentOS_5.vdi" -size 10000 -register
設定虛擬機器使用剛剛登錄的虛擬硬碟
VboxManage modifyvm "CentOS 5" -hda "CentOS_5.vdi"
登錄光碟映像檔, 並讓虛擬機器掛載之
VBoxManage registerimage dvd ~/CentOS-5.2-i386-bin-DVD.iso
VBoxManage modifyvm "CentOS 5" -dvd ~/CentOS-5.2.i386-bin-DVD.iso
或直接掛載本機光碟
VBoxManage modifyvm "CentOS 5" -dvd host:/dev/cdrom
設定虛擬機器使用的遠端桌面埠口 (預設: 3389)
VBoxManage modifyvm "CentOS 5" -vrdp on -vrdpport 3390
啟動虛擬機器
VBoxManage startvm "CentOS 5" -type vrdp
以遠端桌面連線虛擬機器所在之主機即可操作虛擬機器畫面
若虛擬機器使用非標準 port (3389), 只要在連線時, 於 IP 或 Host name 後面加上 :3390 (自定埠口) 即可
遠端桌面相關網頁:
Wikipedia - 遠端桌面協定
Microsoft Remote Desktop Connection 6.0 用戶端更新
rdesktop 官方網站
啟用虛擬桌面登入驗證
# ln -sf /lib64/libpam.so.0 /lib64/libpam.so (x86 則為 /lib)
VBoxManage modifyvm "CentOS 5" -vrdpauthtype external
Linux Client 使用 rdesktop 連入虛擬機器: rdesktop -u someone -p - 192.168.0.1:3390
其中 someone 係該虛擬機器的擁有者
從外部連入 NAT VM (相關限制請見文末)
通訊協定
VBoxManage setextradata "CentOS 5" \
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
虛擬機器聆聽埠口
VBoxManage setextradata "CentOS 5" \
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
本機聆聽埠口
VBoxManage setextradata "CentOS 5" \
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
重新啟動 VM 之後, 即可經由本機 tcp 2222 port 連入 VM:22
以上紫色部份, "CentOS 5" 係虛擬機器名稱, "ssh" 為自定名稱, 最後一個參數是設定值
bridging 做法可參閱官方 User Manual (PDF File) -- 6.8 Host Interface Networking and bridging on Linux hosts
Ref:
有事就記: VirtualBox NAT port forwarding
hpeter 心得分享測試站: VirtualBox 使用 NAT 方法讓 vm 連上網路
開機自動啟動虛擬機器、關機自動保存虛擬機器狀態
# vi /etc/rc.d/rc.local
su - someone -c "VBoxManage startvm 'Name of Virtual Machine' -type vrdp"
# vi /etc/default/virtualbox
SHUTDOWN_USERS="userA userB"
SHUTDOWN=savestate
# vi /etc/init.d/vboxdrv
搜尋 start(), 往下找到 succ_msg 的位置 (約 184 行), 於 succ_msg 之上新增一列:
touch /var/lock/subsys/vboxdrv
# chkconfig vboxdrv on
# touch /var/lock/subsys/vboxdrv
Ref: LinuxQuestions.org - Scripts under rc0.d and rc6.d do not seem to run during shutdown, reboot
參考資料
HowToForge :: VBoxHeadless - Running Virtual Machines With VirtualBox 2.0 On A Headless Ubuntu 8.04 Server
--- 2008.11.03 補充:
只能從 "內部 IP" (10.; 172.32.; 192.168.) 直接連入虛擬機器的 NAT 埠口 (如前例之 tcp:2222).
本機 port 轉向除 nat table 需要設定之外, filter 的 INPUT 也要同時接受指向虛擬機器 NAT 埠口的封包,
iptables -P INPUT DROP 者須注意.
iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to 2222
iptables -t filter -A INPUT -p tcp --dport 2222 -j ACCEPT
本機 port 轉向只能使用 "標準埠號" (如: 22, 25, 80, 110), 無法使用自定埠號來轉向.
iptables -t nat -A PREROUTING -p tcp --dport 8888 -j REDIRECT --to 50080 (假設 50080 是 nat 到 VM:http 的本機埠口)
iptables -t filter -A INPUT -p tcp --dport 50080 -j ACCEPT
以上設定無法接受來自 Internet 端的 my.public.ip:8888 連線請求, 但內部 IP 可以用 vm.host.ip:8888 連入.
页:
[1]