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
  1. 配置到目前,可以满足除主机访问虚拟机之外的4条需求。
  2. 如果出现不能访问外网的情况,有可能是路由表出了问题,需要相应的设置一下.
    一般(我的)路由表是这样的:

如果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 无法联网_NAT

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

其他注意事项:

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

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

VBox无界面启动命令:

VBoxManage startvm 虚拟机名称 --type headless

关机命令:

VBoxManage controlvm 虚拟机名称 poweroff

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

virtualbox centos 无法联网_外网_02