文字模式管理 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 連入.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值