VirtualBox NAT Network配置(OSX上的)

VirtualBox的5种连接方式

  • NAT :虚拟机之间不能互通
  • NAT网络 :本文对象
  • 桥接 :一般情况下虚拟机无法设置静态IP,并且浪费外部局域网IP
  • 内部 :虚拟机不能连外网
  • 仅主机(host-only) :虚拟机不能连外网,并且不互通

NAT网络面向需求

  • 虚拟机可以连外网
  • 虚拟机与主机互通
  • 虚拟机与虚拟机互通
  • 虚拟机需要固定IP (防止意外)
  • 主机所在局域网的其他机器访问虚拟机

基本配置方法

  1. VB设置:添加NAT Network配置
    依次点击《VirtualBox》 -> 《偏好设置》 -> 《网络》 -> 《NAT网络》 -> 《+号》
    先可以采用默认配置,后面在依据需求配置《端口转发》的功能
  2. VB设置:选择虚拟机网络连接方式
    选中对应的虚拟机镜像,依次点击《设置》 -> 《网络》 -> 《连接方式》 -> 选择《NAT 网络》,《界面名称》选择第1步中设置的对象
  3. 虚拟机设置:
  1. windows设置:winxp例子(简单)
    第1步中采用默认配置,是开启了DHCP功能的,所以可以先查看网络连接的参数,如下:

    依次《网络连接》 -> 《本地连接》 -> 《常规-属性》 -> 选中《Internet协议》 -> 《属性》
    对应上图中的参数依次设置即可
  2. linux设置:ubuntu和kali
    开启终端,输入nm-tool查看网络设置参数,如下:

设置静态IP,编辑文件:

$ sudo vim /etc/network/interfaces

添加如下代码,依据自身需求设置相关参数,本人如下:

# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo
iface lo inet loopback

auto eth0		# 添加网卡
	iface eth0 inet static	# 选择静态IP分配方式
	address 10.0.2.4		# 指定需要的IP
	gateway 10.0.2.1		# 默认网关
	netmask 255.255.255.0	# 掩码	
	```
	
	重启网络服务或者插拔网卡(如下方法任选一条就可以):
		
	`sudo /etc/init.d/networking restart`
		
	`sudo service networking restart`
		
	```
	sudo ifdown eth0 
	sudo ifup eth0
	```
		
	一般这样设置完就可以通过ip地址访问外网了,比如直接ping百度的ip地址应该是通了。但是不能通过域名的方式来上网,需要配置dns:
		
	* ubuntu网上有好几种方式,这里只给出一种,永久生效,编辑如下文件:
		
		`sudo vim /etc/resolvconf/resolv.conf.d/base`
		
		添加如下代码(具体的dns请参考自己的,根据网络修改):
	
		`nameserver 192.168.0.1`
	
	* kali没有这个文件,就直接向`/etc/rc.local`文件中写入如下代码,保证每次开机有这个配置就行(具体需要根据所在网络进行修改):
	
		`echo "nameserver 192.168.0.1" >> /etc/resolv.conf`
		
3. 配置到目前,可以满足除主机访问虚拟机之外的4条需求。
4. 如果出现不能访问外网的情况,有可能是路由表出了问题,需要相应的设置一下.

	一般(我的)路由表是这样的:
	
	![VBoxNATNet]()
	
	如果default设置不对,比如网关,掩码不对会导致无法连接外网的,此时需要删除错误的路由选项,添加正确的路由选项,命令一般如下:
	
	```
	# 删除默认路由选项
	$ sudo route del default
	# 添加正确的路由选项,netmask 0.0.0.0
	sudo route add default gw 10.0.2.1
	```

定制配置

主要通过设置端口转发完成

实例:

  • winxp开启ftp服务
  • ubuntu开启ssh
  • kali开启ssh
  • kali开启web服务

配置如下:

VirtualBox centos 无法上网 virtualbox network_IP

主机ip设置为空,这样即使主机ip变了也可以通过端口访问虚拟机

其他注意事项:

  • 虚拟机注意配置防火墙,放行通过的数据包
  • 主机访问虚拟机时尽量使用ip地址,不要使用127.0.0.1的方式去访问,这样会导致虚拟机那边以为是网关在访问,部分服务的连接无法建立

通过如上配置,基本上就可以很愉快的使用VBox和各个虚拟机。VBox支持的无界面启动方式,配合iTerm,使用ssh面密登录,感觉用起来爽的不要不要的。

VBox无界面启动命令:

VBoxManage startvm 虚拟机名称 --type headless

关机命令:

VBoxManage controlvm 虚拟机名称 poweroff

效果图如下:使用手机热点上网,修改了dns的配置

VirtualBox centos 无法上网 virtualbox network_IP_02