VirtualBox网络NAT方式的端口映射

VirtualBox下安装虚拟机,使用NAT的网络方式(默认方式),使用非常简单,不需要进行额外的设置(VmWare还需要将地址修改为静态ip),也不需要使用额外的驱动。在安装完系统后,直接就可以上网。

但是也存在一个问题,就是host主机和外网无法通过网络访问虚拟机。

这个问题可以通过设置“端口映射”的方法来解决,就是将虚拟机的某个端口(对应特定服务)映射到NAT路由上的指定端口,然后外网发送到路由上这个端口的数据,将直接转发给虚拟机的对应端口。

设置方式是使用VirtualBox的VBoxManage.exe程序,在VirtualBox的安装目录下能找到,设置分为三步:指定协议类型,设置虚拟机端口,设置对应的nat映射端口(以上操作通过端口名称来保证相互关系)

这是一个设置ssh服务的脚本(bat脚本,保证路径正确,直接运行):

set VBoxManage=..\VBoxManage.exe setextradata
set VServerName=UbuntuServer
set VHeader=VBoxInternal/Devices/pcnet/0/LUN#0/Config/
set VPortName=UbuntuServer_SSH

%VBoxManage% %VServerName% "%VHeader%%VPortName%/Protocol" TCP
%VBoxManage% %VServerName% "%VHeader%%VPortName%/GuestPort" 22
%VBoxManage% %VServerName% "%VHeader%%VPortName%/HostPort" 2222

详细的设置方法可以参见VirtualBox的手册,里面还说的比较详细

这里我说一个我在设置中遇到的小问题,上面这段脚本最早是从网上查到的,原来是设置http端口的映射,

我修改了路径,服务名称,端口名称等内容,但是忘了修改端口号就直接运行了,然后修改好端口号后又运行了一次啊,本来以为会出现两条设置结果(可在C:\User\your user\.VirtualBox\Machines\your machine下的xml文件中查看),正在担心不知道怎么去掉规则,可是发现其实只有后执行的设置,由此判断VirtualBox是会根据端口名称来匹配的,所以如果设置错了,只要保持端口,服务名称不变,重新执行就可以了

还有一点需要注意,上面命令中的“pcnet”是网络适配器的类型,需要根据实际选择的不同而不同,查看的方法是进入虚拟机的设置界面,选择网络,打开高级,在其中可以看到适配器的类型。如果是“intel/pro”,需用用“e1000”替换上面的“pcnet”,其他的请参见VirtualBox的使用手册(在安装目录下)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值