首页 运维 网络学院 查看内容

「干货」VirtualBox搭建centos服务器指南

2020-8-27 10:45 |来自: 互联网 1293 0

摘要: 一般我们会有一台工作笔记本(宿主机),可以通过VirtualBox安装多台centos系统来搭建本地开发环境。网络要实现宿主机与虚拟机之间的互通、虚拟机与虚拟机之间的互通、虚拟机可以访问外部网络和同一局域网内的其他主机、同一局域网中的其他主机不能访问虚拟机。
关键词: 命令 宿主机 网络 网卡 按钮 系统 配置 模式 VirtualBox 选择

版权声明

本文由“开发者手册”原创,如需转载,请标明出处。

基本介绍

作为一个软件开发者,总想自己搭个服务器、组个集群、整整docker、玩玩k8s,什么?系统搞挂了.... 怎么能快速重来?

一般我们会有一台工作笔记本(宿主机),可以通过VirtualBox安装多台centos系统来搭建本地开发环境。网络要实现宿主机与虚拟机之间的互通、虚拟机与虚拟机之间的互通、虚拟机可以访问外部网络和同一局域网内的其他主机、同一局域网中的其他主机不能访问虚拟机。

系统环境

宿主机环境:MacBook Pro 2015,macOS Catalina 10.15.6

VirtualBox:6.1

centos镜像版本:CentOS-7-x86_64-Minimal-1804.iso

说明:安装包在我共享的网盘里,如果需要可以+关注私信我

VirtualBox安装和基本设置

VirtualBox安装好后的主页面如下图所示

VirtualBox四种常见网络配置方案


Network Address Translation(NAT,网络地址转换模式):在NAT模式下虚拟机访问网络是通过主机提供的,虚拟机本身并不存在于网络中,虚拟机通过DHCP获得的虚拟ip通常为(10.0.2.X)。

Bridged Adapter(桥接模式):在桥接模式下,虚拟机和主机的网卡之间就像架设了一座桥,使虚拟机可以直接接入到网络中。虚拟机能被分配到一个真实IP,所有的网络功能和真机一样。

Internal(内部网络模式):在内部网络模式下,虚拟机与外网完全断开,只能实现虚拟机和虚拟机之间的网络互相访问。

Host-Only Adapter(主机模式):在主机模式下,VirtualBox会在宿主机上模拟出一张虚拟网卡(vboxnet:192.168.56.1)专门用于提供虚拟机使用。所有的虚拟机都会连接到该网卡上,虚拟机通过DHCP获得的虚拟ip通常为(192.168.56.X)。

配置本地VirtualBox网络环境


我们会采用NAT+Host-Only配置方式来实现需求。NAT模式是用于满足虚拟机外网的访问,Host-Only模式是设置固定IP使虚拟机和宿主机可以互相访问。

创建NAT网络环境

1、点击全局设定

2、选择网络->点击添加->启动网络,参数保持默认即可

创建Host-Only网络环境

1、选择网络菜单

2、点击创建按钮,会生成一个vboxnet0的网络配置,网段为:192.168.56.X,DHCP服务器可以启用也可以关闭,我这边选择关闭,因为后续会配置为固定IP。

安装centos操作系统

安装步骤


1、点击新建按钮

2、输入基本信息后点击创建按钮

3、设置磁盘大小后点击创建按钮

4、点击设置->网络来设置网卡信息

5、点击启动按钮

6、出现选择操作系统镜像页面,点击选择按钮

再点击Add按钮,在弹出框中选择本地镜像文件,最后点击choose按钮

再点击start按钮

7、此时会显示安装页面

8、选择安装语言

9、设置时区

10、选择安装路径

11、点击Begin Installation开始安装

12、设置root密码

13、点击Reboot按钮重启

14、重启后使用root用户登录系统

centos基本配置


配置网卡

输入ip addr命令查看网络信息,发现有enp0s3和enp0s8两个网卡。

enp0s3为NAT模式对应的网卡,不配置固定IP。

enp0s8为Host-Only模式对应的网卡,配置为固定IP。


设置enp0s3网卡

命令:vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

修改:ONBOOT=yes

保存退出后。

输入命令:systemctl restart network重启网络服务。

此时再通过命令:ip addr查看网络配置,发现enp0s3这张网卡被分配到ip(10.0.2.9)了:

此时外网访问应该也通了,ping www.baidu.com后结果如下:

设置enp0s8网卡:

命令:vi /etc/sysconfig/network-scrirpts/ifcfg-enp0s8

修改如下:

我这边把固定IP设置为:192.168.56.56

通过命令:systemctl restart network重启网络服务。

此时通过命令:ip addr查看,发现enp0s8网卡的固定IP也生效了。

在宿主机通过ping 192.168.56.56命令发现宿主机可以访问虚拟机了。

该虚拟机通过ping 192.168.56.1发现虚拟机也可以访问宿主机。

配置主机名

命令:hostnamectl --static set-hostname demo56

说明:设置主机名为demo56。


关闭防火墙

命令:systemctl stop firewalld && systemctl disable firewalld

输出:

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.


关闭SELinux

命令:setenforce 0

命令:vi /etc/selinux/config

修改:SELINUX=disabled


关闭swap和取消swap挂载

命令:swapoff -a && sysctl -w vm.swappiness=0

结果:vm.swappiness = 0

命令:vi /etc/fstab

修改(加#号注释):#/dev/mapper/centos-swap swap swap defaults 0 0


设置localadmin用户


由于一般不直接用root用户来做操作,所以我们通过创建localadmin用户替代root用户。

以下操作在root用户下执行

创建用户组

命令:groupadd localadmin

创建用户

命令:useradd localadmin -m -s /bin/bash -d /home/localadmin -g localadmin

参数说明:

  • -m:创建用户目录
  • -s:指定登录shell
  • -d:设置主目录
  • -g:设置用户所属组

设置登录密码

命令:passwd localadmin

设置sudo权限

命令:visudo -f /etc/sudoers

新增:

localadmin ALL=(ALL) NOPASSWD: ALL

说明:

NOPASSWD: ALL 表示执行所有操作都无需验证密码


安装基础软件


在localadmin用户下执行

在线安装:

  • 上传下载工具:sudo yum -y install lrzsz
  • 压缩/解压缩:sudo yum -y install zip unzip
  • wget下载工具:sudo yum -y install wget
  • lsof工具:sudo yum -y install lsof
  • curl工具:sudo yum -y install curl
  • net-tools工具:sudo yum -y install net-tools
  • vim工具:sudo yum -y install vim
  • nscd工具:sudo yum -y install nscd

安装docker(17.03.0-ce,安装包在我的共享网盘里有提供):

命令:sudo yum -y install docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm

命令:sudo yum -y install docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm

设置docker开机启动:sudo systemctl enable docker

启动docker:sudo systemctl start docker

查看docker是否启动成功:docker -v


制作centos备份系统

通过前面的步骤,我们已经安装好了centos系统,并做了基本的配置和安装了基础软件,服务器基本可以投入使用了。但是为了不重复造轮子,我们可以通过VirtualBox把当前这个状态的系统备份下来作为基础系统,后续的虚拟机都从这个系统获取。

先关闭当前centos系统。

1、选择备份系统菜单

2、点击生成按钮

3、输入备份名称和备份描述后点击OK按钮

4、创建成功


根据备份系统创建新虚拟机

注意:做此操作时,最好保持被复制的系统处于关闭状态,以防止出现ip冲突等问题。

现在我们要基于前面备份的基础系统来创建真正投入使用的系统

1、在要被备份的虚拟机上点击复制按钮

2、填写新虚拟机的名称和存放路径

3、选择副本类型

4、选择备份类型

5、点击复制后,发现server111这台虚拟机创建成功

对新虚拟机做的配置


设置新的固定IP

我这里将IP设置为:192.168.56.111

启动server111这台虚拟机,使用root账户登录,然后执行如下命令设置IP

命令:vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

修改:

IPADDR=192.168.56.111

再执行命令:systemctl restart network 重启网络服务。

此时会发现enp0s8的ip变为了192.168.56.111


设置主机名

我这里设置为server111

命令:hostnamectl --static set-hostname server111


常见问题及解决方法

无法正确解析域名


问题起因:这个问题是由于虚拟机的DNS服务器IP地址设置不正确引起的。一般情况下,虚拟机使用的是和宿主机一样的DNS设置。如果是在公司创建的虚拟机,创建好后能上网,但是拿到家里就上不了了,这是由于DNS服务地址还没有刷新过来,导致在家上不了网。

解决办法:可以通过重启虚拟机或者手动刷新DNS缓存来解决,刷新DNS缓存命令如下:sudo systemctl restart nscd

参考资料

VirtualBox官方地址:https://www.virtualbox.org

结束语

希望我的文章能给您带来帮助,如果您有什么疑问,可以给我留言,我会在第一时间给您提供解答。如果您有好的建议或想法,也欢迎给我留言。

本文出处: https://www.toutiao.com/a6864913650499453454/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部