主机电脑安装的是windows vista,安装的virualbox4.0,虚拟系统为ubuntu10.10,网络设置为NAT,在ubuntu系统里已经安装好ttserver的应用,采取端口映射,可以实现主机访问虚拟机的应用,比如ttserver(目前不能运行在windows系统上)。
有两种实现方法(以NAT模式为例):图形化设置、命令设置:
【一】、图形化设置
这种设置简单方便,选择需要设置的虚拟机,右击->设置->显示高级选项:
点击按钮 Port Forwarding,
设置相关说明:
- Name:ttser_nm 这个可以随便设置的
- Guest Port:21978 需要映射的虚拟机中应用程序的端口
- Host Port:21978 映射到主机的端口
【二】、命令设置
这种设置方法有一点麻烦,首先需要先确认虚拟机的网络设备的名称,才能进行端口映射的下一步设置。
1、查看虚拟机设备名称
原来的virualbox都是使用PCNET作为虚拟网卡,而V3.2.4开始新建虚拟机的时候,虚拟的则是Intel的网卡,所以我们第一步需要确认下虚拟机的设备名称,选择需要修改的虚拟机,右击->日志:
如上图,点击查找按钮,输入关键字“NAT”,搜索到类似以下内容:
00:00:01.600 [/Devices/e1000/0/LUN#0/] (level 4) 00:00:01.600 Driver= "NAT" (cb=4)
其中: /Devices/e1000/0/LUN#0/ 即为虚拟机里网络设备的名称
2、VBoxManage命令设置端口映射
VBoxManage.exe在安装目录下X:\Program Files\VirtualBox\
在cmd命令窗口下,cd 切换到相应的安装目录下
早期版本V3.2.4之前,执行下面的命令即可:
//-----设置 >VBoxManage setextradata "ubuntu" "VBoxInternal/Devices/e1000/0/LUN#0/Config/ttser_nm/Protocol" TCP >VBoxManage setextradata "ubuntu" "VBoxInternal/Devices/e1000/0/LUN#0/Config/ttser_nm/GuestPort" 21978 >VBoxManage setextradata "ubuntu" "VBoxInternal/Devices/e1000/0/LUN#0/Config/ttser_nm/HostPort" 21978 //-----清除 >VBoxManage setextradata "ubuntu" "VBoxInternal/Devices/e1000/0/LUN#0/Config/ttser_nm/Protocol" >VBoxManage setextradata "ubuntu" "VBoxInternal/Devices/e1000/0/LUN#0/Config/ttser_nm/GuestPort" >VBoxManage setextradata "ubuntu" "VBoxInternal/Devices/e1000/0/LUN#0/Config/ttser_nm/HostPort"
命令相关说明:
- "ubuntu"->对应于我们在virtualbox里设置的虚拟机名称
- /Devices/e1000/0/LUN#0/->对应于我们在步骤一中搜索到的机设备名称
- ttser_nm 可以任意取的
- GuestPort是虚拟机中所启动服务的端口,HostPost是主机上的映射端口
V3.2.4之后命令变得简洁易懂:
VBoxManage modifyvm "ubuntu" --natpf1 "ttse_nm,tcp,,11978,,11978"
命令相关说明:
- VBoxManage 修改vm配置 虚拟机名(Ubuntu) nat_port_forwarding(第1个网卡) "端口转发名(ttse_nm),协议(tcp),主机IP(略),主机端口21978,虚拟机IP(略),虚拟机端口21978"
以上方法均能实现端口映射,本人亲测通过。
-----------------------------------分-----------------------------------隔-----------------------------------线-----------------------------------