最近在虚拟机中使用linux操作系统,之前使用NAT方式上网,能够畅通无阻。但是使用SSH客户端连接linux虚拟机就必须为其指定固定的IP地址。按照网上的配置方法使用桥接方式,这种方式是可以的。但是问题是,我们使用的是校园网客户端(Dr.COM),在虚拟机中需要登录该客户端才能使用,貌似没有linux版,再说了只有一个账号呢。要实现这样的需求,我们之前说了NAT方式是可以上网的,然后使用HOST-ONLY给其指定IP地址,使用两张网卡就能解决这个问题。
一、NAT模式
特点:
1、如果主机可以上网,虚拟机可以上网
2、虚拟机之间不能ping通
3、虚拟机可以ping通主机(此时ping虚拟机的网关,即是ping主机)
4、主机不能ping通虚拟机
应用场景:
虚拟机只要求可以上网,无其它特殊要求,满足最一般需求
配置方法:
连接方式 选择 网络地址转换(NAT)
高级-控制芯片 选择 PCnet-FAST III
高级-混杂模式 拒绝
高级-接入网线 √
(虚拟机ip自动获取)
ip样式:
ip 10.0.2.15
网关 10.0.2.2
注意此处的网关在不同虚拟机中可能是同一个值,但是这归属于不同的NAT Engine,因此实际上各个虚拟机用的不是同一个网关
原理:
虚拟机的请求传递给NAT Engine,由它来利用主机进行对外的网络访问,返回的数据包再由NAT Engine给虚拟机。
二、Host-only Adapter模式
特点:
1、虚拟机不可以上网
2、虚拟机之间可以ping通
3、虚拟机可以ping通主机(
4、主机可以ping通虚拟机
应用场景:
在主机无法上网的情况下(主机可以上网的情况下可以用host-only,也可以用桥接),需要搭建一个模拟局域网,所有机器可以互访
配置方法:
连接方式 选择 仅主机(Host-Only)适配器
界面名称 选择 VirtualBox Host-Only Ethernet Adapter
高级-控制芯片 选择 PCnet-FAST III
高级-混杂模式 拒绝
高级-接入网线 √
原理:
通过VirtualBox Host-Only Network网卡进行通信,虚拟机以此ip作为网关,因此模拟了一个本机与各个虚拟机的局域网,如名称所指,应该是无法上网的
三、 配置过程
1. 添加网卡
设置虚拟机配置信息,选择”网络“,进行设置添加两张网卡,如下图所示
图1 网卡1-NAT连接方式
图2 网卡2-Host-only连接方式
点击管理-全局设定-网络,设置Host-only相关参数,为其指定IP
打开网络和共享中心(win7)-更改适配器配置-选择VirtualBox Host-only Network-右键-属性-IPv4,设置如下:
2、 启动虚拟机进入linux系统进行相关网络配置
在系统-首选项-网络连接
这个就是我们刚刚添加的两个网卡,我这里重名名了,分别为eth1和eth0,点击编辑eth1(Host-only连接方式),进行如下设置:
进入终端编辑网卡eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth0
需要修改如下几个参数:
ONBOOT =yes
DEFROUTE=yes
BOOTPROTO=dhcp
3. 重启网络
service networt restart
这下就可以上网了,也能使用SSH客户端了,打开putty输入192.168.56.103就能够连接上虚拟机了
需要注意的是,如果SSH终端连接不上可能存在的问题:
SSHD服务没有开启
解决办法:service sshd start
防火墙没有关闭:
解决办法:service iptables stop