上一篇《VirtualBox中安装CentOS7过程记录》中讲述了如何安装VirtualBox和在VirtualBox中安装CentOS7,但是限于篇幅有很多问题没有展开,在本篇将展开介绍VirtualBox和CentOS的设置问题。
VirtualBox支持的虚拟机文件类型
VDI: Virtual Disk Image,这是VirtualBox默认使用的虚拟机文件类型。
VMDK:这是VMware默认使用的虚拟机文件类型。
VHD:这是微软出品虚拟机软件默认使用的虚拟机文件类型。
在创建虚拟机时选择哪一种看个人偏好了,不过我一般偏好VMDK,因为预研成功的时候我可以将vmdk文件交给虚拟化管理直接加载到公司的虚拟机资源池中。当然,创建之后也是可以通过VirtualBox提供的VBoxManage.exe在三种格式之间转换,这个文件位于VirtualBox的安装目录下。
VirtualBox支持的虚拟机CPU设置
默认情况下创建的虚拟机只使用了1核,有时候在宿主机硬件比较好的情况下为了有更好的体验,可以设置多核多线程,本人电脑是4核8线程,因此最大可设置为4,如下图所示:
 
VirtualBox支持的虚拟机网络接入方式
点击“网络”选项时会看到如下界面:
 
在界面中有四个比较重要的设置:
连接方式。
界面名称。
控制芯片。
混杂模式。

虚拟机网络连接方式
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来实现,本人尝试过几次都没有成功,不知道问题出在哪里。

CentOS7的安全设置
使用桥接模式后,在学习机上建议做如下配置
关闭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的网络设置
设置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的前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配置之后,需要重启网络才能生效,重启网络的命令为:

1
systemctl restart network.service

VirtualBox的多网卡设置
在VirtualBox中可以支持多个网卡的,一般情况下可能用处不大,但在某些情况下这个还是有用的,比如本人现在的情况:家里拉了一根电信宽带,为方便全家人手机上网无线路由器架设在客厅,而笔记本在书房,前文说过WIFI条件下使用桥接模式时不支持混杂模式,即无法从宿主机接收到的数据包中过滤外部网络发送给虚拟机的数据包(宿主机和虚拟机可以在桥接模式下通讯)。此时面临两个选择:一、使用NAT模式虚拟机和宿主机均可上网,但在宿主机上无法通过SSH客户端访问虚拟机,使用上极大不便;二、使用Bridged networking(桥接)是宿主机可以访问虚拟机和上网(可以用SSH客户端),但虚拟机无法上网了。
无意中发现电信宽带的光猫为照顾一般家庭情况提供了两个接入口,分别支持上网和iTV。这iTV本人曾经用了几年,如今没用了,于是在光猫处一根网线接到客厅无线路由器上,一根接到书房网线插槽里并最终连接笔记本。这样书房里的笔记本可以同时使用WIFI和有线,于是给虚拟机里的CentOS7配置了双网卡,这样在虚拟机使用WIFI情况下,宿主机和虚拟机均可上网,且宿主机可通过SSH等访问虚拟机。
这就是在前面执行ls -lh /etc/sysconfig/network-scripts时可以两个网络配置的原因(分别是ifcfg-enp0s3和ifcfg-Wired_connection_1)。
下面是本篇所有配置的动画演示:

本文转自周金桥51CTO博客,原文链接: http://blog.51cto.com/zhoufoxcn/1928803,如需转载请自行联系原作者

开发人员学Linux(2):VirtualBox中安装CentOS7系统设置相关推荐

  1. 开发人员学Linux(1):VirtualBox中安装CentOS7过程记录

    2019独角兽企业重金招聘Python工程师标准>>> 在开发过程中常常需要进行一些预研,而有些操作对操作系统可能具有破坏性且是不可恢复的,或者需要在不同的操作系统中去观察结果,虽然 ...

  2. 开发人员学Linux(10):CentOS7安装配置代码质量管理平台SonarQube6.4

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 上一章讲述了如何配置使用源代码管理工具SVN并使之与Apache集成,从而实现代码的变更可追溯,虽然在大多数团队里强 ...

  3. 开发人员学Linux(10):CentOS7安装配置代码质量管理平台SonarQube

    1.前言 上一章讲述了如何配置使用源代码管理工具SVN并使之与Apache集成,从而实现代码的变更可追溯,虽然在大多数团队里强调代码提交之前必须找团队中经验丰富的人来审核通过后方可提交,但这一条有时候 ...

  4. 开发人员学Linux(4):使用JMeter对网站和数据库进行压力测试

    前言 表面看来,JMeter与本系列课程似乎关系不大,但实际上在后面的很多场景中起着重要作用:如何获知修改了某些代码或者设置之后系统性能是提升了还是下降了呢?商业的压力测试工具LoadRunner确实 ...

  5. 开发人员学Linux(3):CentOS7中安装JDK8和Tomcat8

    题外话:直到今天开始写本系列的第三篇时本人才想好为这个系列取一个名字,本系列不是为Linux运维人员准备的,而是主要为开发人员准备的,包括但不限于: 希望了解Linux的开发人员: 需要在Linux上 ...

  6. 开发人员学Linux(13):CentOS7安装配置IT设备监控系统Zabbix

    1.前言 在前一篇讲述了如何安装Memcached和Redis,在这一篇主要讲述如何安装企业级IT设备监控系统Zabbix.本人曾在某大型集团公司信息化部门工作,公司在多个城市以及一个城市的多个区有办 ...

  7. window 10 使用vagrant 在virtualbox中安装centos7

    下载 安装virtualbox 下载地址 virtualbox 官网: https://www.virtualbox.org 点击 Download VirtualBox xx 选择 Windows ...

  8. 开发人员学Linux(8):CentOS7编译安装Subversion及Apache并集成

    1.前言 本篇将介绍如何编译安装SVN服务器端管理软件subverion和Web服务器Apache.本来在前面的系列文章已经讲过使用Nginx作为Web服务器的,所以我一直在找有关subverion集 ...

  9. VirtualBox中安装Ubuntu虚拟机

    原文链接:VirtualBox中安装Ubuntu12.04/Ubuntu14.04虚拟机 NOTE: 一开始安装的Ubuntu12.04,后来又重新安装了14.04.截图基本使用了安装12.04时的截 ...

最新文章

  1. 服务器精益改善系列,精益生产改善的内容是什么?
  2. 7-20 打印九九口诀表 (15 分)
  3. jenkins组权限_Jenkins 中基于角色的权限管理
  4. java 复印件效果_简历复印—原型模式
  5. Wannafly交流赛1: D. 白兔的字符串(随机+EXKMP)
  6. Android USB(type-c)耳机(十)
  7. Camera 初始化(Open)一(FrameWork - Hal)
  8. html+英文什么字体好看的,10个非常漂亮的英文字体分享
  9. 创意字体设计中主题类别有哪些呢?
  10. [论文] 主动学习直推学习测试集验证集
  11. 一则“HTTP 405 Method Not Allowed”的解决办法
  12. 计算机地图制图pdf,计算机地图制图(资料).pdf
  13. 人工智能设计概述(二)
  14. SV--随机约束(一)
  15. java路上偶遇占小狼
  16. upupoo php,UPUPOO动态桌面下载
  17. 腾讯 Code Review 规范出炉,你还敢乱写代码?
  18. 23岁那年你正处在哪个状态?现在呢?
  19. Android-状态机算法思想实现礼物连击需求
  20. 实现Python爬虫的思路、原理

热门文章

  1. mysql进度查看_MySQL长查询进度监控
  2. java连接mysql 不推荐_java连接mysql
  3. 用户认证失败或权限不足异常处理
  4. Spring如何将事件分配给专门的监听器?
  5. 什么是顺序一致性呢?
  6. Java并发编程的基础-其他的线程复位
  7. 执行SQL-获取缓存
  8. 什么是控制反转(IOC)?什么是依赖注入?
  9. ActiveMQ跟SpringBoot整合的双向队列
  10. vscode安装和使用