上一篇《VirtualBox中安装CentOS7过程记录》中讲述了如何安装VirtualBox和在VirtualBox中安装CentOS7,可是限于篇幅有不少问题没有展开,在本篇将展开介绍VirtualBox和CentOS的设置问题。linux
VDI: Virtual Disk Image,这是VirtualBox默认使用的虚拟机文件类型。vim
VMDK:这是VMware默认使用的虚拟机文件类型。centos
VHD:这是微软出品虚拟机软件默认使用的虚拟机文件类型。安全
在建立虚拟机时选择哪种看我的偏好了,不过我通常偏好VMDK,由于预研成功的时候我能够将vmdk文件交给虚拟化管理直接加载到公司的虚拟机资源池中。固然,建立以后也是能够经过VirtualBox提供的VBoxManage.exe在三种格式之间转换,这个文件位于VirtualBox的安装目录下。服务器
默认状况下建立的虚拟机只使用了1核,有时候在宿主机硬件比较好的状况下为了有更好的体验,能够设置多核多线程,本人电脑是4核8线程,所以最大可设置为4,以下图所示:微信
点击“网络”选项时会看到以下界面:网络
在界面中有四个比较重要的设置:多线程
链接方式。框架
界面名称。学习
控制芯片。
混杂模式。
虚拟机网络链接方式
VirtualBox支持7种接入方式:
网络地址转换NAT – Network Address Translation (NAT)
桥接网卡 – Bridged networking
内部网络 – Internal networking
仅主机(Host-Only)适配器 – Host-only networking。
通用驱动 – Generic networking
VirtualBox的网络链接类型设置界面以下:
这几种网络链接类型的简单对好比下:
虚拟机网络链接界面名称
这里其实当前宿主机上的网卡。在桥接模式下,Virtualbox会使用主机中单独的一个驱动来处理网络数据。从网络数据中过滤出虚拟机的数据。所以在桥接模式下,必定要选择当前正在使用的网卡。
虚拟机网络链接控制芯片
在VirtualBox中界面名称有以下几种:
AMD PCNet PCI II (Am79C970A);
AMD PCNet FAST III (Am79C973, the default):
Intel PRO/1000 MT Desktop (82540EM);
Intel PRO/1000 T Server (82543GC);
Intel PRO/1000 MT Server (82545EM);
Paravirtualized network adapter (virtio-net)
AMD PCNet FAST III (Am79C973)是默认推荐的,由于它几乎被全部的操做系统支持,甚至是GNU GRUB boot manager都支持。Intel PRO系列是为了支持那些再也不被操做系统提供驱动的系统,如Windows Vista。Intel PRO/1000 MT Desktop 支持Windows Vista及以后的Windows系统,Intel PRO/1000 T Server能够在无需安装驱动的状况下被Windows XP识别,Intel PRO/1000 MT Server支持从其余平台上导入的OVF格式文件。
Paravirtualized network adapter (virtio-net)比较特殊,若是你选择了Paravirtualized network adapter (virtio-net),那么则须要本身保证,有对应的,特殊的软件接口,去实现对应的网络处理的。
虚拟机网络链接混杂模式选择
混杂模式(英语:promiscuous mode)是电脑网络中的术语。是指一台机器的网卡可以接收全部通过它的数据流,而不论其目的地址是不是它。
通常计算机网卡都工做在非混杂模式下,此时网卡只接受来自网络端口的目的地址指向本身的数据。当网卡工做在混杂模式下时,网卡未来自接口的全部数据都捕获并交给相应的驱动程序。
所有容许:全部数据(不论其目的地址是不是本身)都分别发送到虚拟机和主机。
容许虚拟电脑:全部数据(不论其目的地址是不是本身)仅发送到虚拟机。
拒绝:虚拟机和主机都仅接收目的地址是本身的数据。
根据VirtualBox的描述,在桥接模式下虚拟机会直接从宿主机接收到的数据包中过滤属于发送到本身的数据包,为了保证虚拟机可以接收到属于本身的数据包,这里建议选择所有容许。
注意:在宿主机使用WIFI链接到网络时,因为大部分无线网卡不支持混杂模式,因此在宿主机使用无线链接到网络时可能没法上网。网上看过一些人的文章说是经过lookback来实现,本人尝试过几回都没有成功,不知道问题出在哪里。
使用桥接模式后,在学习机上建议作以下配置
关闭SELINUX
SELinux是一个安全体系结构,它经过LSM(Linux Security Modules)框架被集成到Linux Kernel 2.6.x中。它是NSA (United States National Security Agency)和SELinux社区的联合项目。在生产环境中根据须要来决定是否关闭,在学习环境中建议仍是关闭掉。在CentOS7中这个设置在/etc/sysconfig/selinux文件中,能够经过vim之类的软件将“SELINUX=enforcing”改成” SELINUX=disabled”。
关闭防火墙
在CentOS中也有相似Windows中的防火墙,在CentOS7以前默认用的iptables,在CentOS7以后默认用firewall,能够执行systemctl disable firewalld来禁用防火墙。不然,在默认状况下,即便你安装了Apache或Nginx或Tomcat之类的服务器软件,你会发如今其它终端上你任然没法访问对应的端口,由于默认状况下防火墙开启且开通了较少的端口(如22端口,用SSH链接)。
注意:上面用于关闭SELIUNX和关闭防火墙的办法仅适合学习Linux服务器相关知识的学习用机上,生产环境用机上仍是老老实实配置吧。
设置CentOS7的IP
根据本人的经历,在CentOS7下默认网络IP配置文件名可能有变化,能够经过查看/etc/sysconfig/network-scripts目录下的文件:
命令以下:
ls -lh /etc/sysconfig/network-scripts
在本人虚拟机上效果以下:
这个配置文件通常以“ifcfg-enp”开头的文件,在本人的虚拟机上为“ifcfg-enp0s3”,能够经过vim来进行编辑。由于本人家里架设有路由器,为方便操做因此VirtualBox使用了桥接模式,路由器IP地址为12.168.60.1,因此CentOS的静态IP地址也是在192.168.60网段(采用静态IP的缘由是可不但愿每次经过SSH登陆到CentOS7的时候还要先看一下它的动态IP)。
下图是本人在上一篇中讲到在VirtualBox安装CentOS7时默认状况下/etc/sysconfig/network-scripts/ifcfg-enp0s3的内容:
这是另外一个能够正常访问虚拟网络的CentOS上的配置信息:
与上图相比主要有以下区别:
“BOOTPROTO=dhcp”改成“BOOTPROTO=static”,表示由动态分配IP地址改成固定IP地址(否则每次IP地址变化了,还得改SSH客户端设置里的IP地址,至关麻烦);
“ONBOOT=no”改成“ONBOOT=yes”,表示系统启动后自动链接到现有网络;
新增“IPADDR=192.168.60.148”,因为将获取IP模式从动态模式改成固定IP,因此须要指定固定IP地址。注意:实际IP地址请根据当前网段设定来设置。
新增“PREFIX=24”,表示子网掩码。咱们知道IP4是由4个字节表示,为方便识别在使用时会将其转换为10禁止,如192.168.1.1,而每一个字节是8bit,这里的24表示若是网段中另外一个IP的b前24bit与其严格匹配,那么这两个IP就是在同一个子网段中,在配置Windows网络时表达一样含义的子网掩码为:255.255.255.0。
新增“GATEWAY=192.168.60.1”,表示网关地址。注意:实际IP地址请根据当前网段设定来设置,本人将家里路由器设置成192.168.60网段,而不是路由器默认的192.168.1网段。
CentOS7的域名解析服务器设置信息保存在/etc/resolv.conf文件中,能够经过vim /etc/resolv.conf来修改,下图是本人当前虚拟机里的域名解析设置:
域名解析服务器的查找原则和通常程序中事件处理规则一致:若是就近的规则定义能处理,那么就由就近的处理程序处理,不然就冒泡给上一级处理程序。在宿主机和虚拟机中均未使用DNS服务,虽然设置了192.168.1.1和192.168.60.1为DNS服务器,可是对于外部域名它们是没有办法解析的,就会尝试向上寻找能够解析外部域名的DNS服务器。为保险起见,仍是建议将本市所在的电信运营商提供的DNS添加进去。
设置主机名
CentOS的主机名设置存放在/etc/hostname中,能够经过vim /etc/hostname来修改,以下:
[root@centos7 ~]# vim /etc/hostname
centos7
和Windows中图形用户界面设置不一样,经过上面的方式更改了虚拟机的IP配置以后,须要重启网络才能生效,重启网络的命令为:
systemctl restart network.service
在VirtualBox中能够支持多个网卡的,通常状况下可能用处不大,但在某些状况下这个仍是有用的,好比本人如今的状况:家里拉了一根电信宽带,为方便全家人手机上网无线路由器架设在客厅,而笔记本在书房,前文说过WIFI条件下使用桥接模式时不支持混杂模式,即没法从宿主机接收到的数据包中过滤外部网络发送给虚拟机的数据包(宿主机和虚拟机能够在桥接模式下通信)。此时面临两个选择:1、使用NAT模式虚拟机和宿主机都可上网,但在宿主机上没法经过SSH客户端访问虚拟机,使用上极大不便;2、使用Bridged networking(桥接)是宿主机能够访问虚拟机和上网(能够用SSH客户端),但虚拟机没法上网了。
无心中发现电信宽带的光猫为照顾通常家庭状况提供了两个接入口,分别支持上网和iTV。这iTV本人曾经用了几年,现在没用了,因而在光猫处一根网线接到客厅无线路由器上,一根接到书房网线插槽里并最终链接笔记本。这样书房里的笔记本能够同时使用WIFI和有线,因而给虚拟机里的CentOS7配置了双网卡,这样在虚拟机使用WIFI状况下,宿主机和虚拟机都可上网,且宿主机可经过SSH等访问虚拟机。
这就是在前面执行ls -lh /etc/sysconfig/network-scripts时能够两个网络配置的缘由(分别是ifcfg-enp0s3和ifcfg-Wired_connection_1)。
下面是本篇全部配置的动画演示
声明:本文首发于本人我的微信订阅号:zhoujinqiaoIT,其后会同时在本人的CSDN、51CTO及oschina三处博客发布,本人会负责在此四处答疑。