当前位置: 首页 > news >正文

virtualbox7安装centos7.9配置静态ip

1.背景

  我大概在一年之前安装virtualbox7+centos7.9的环境,但看视频说用vagrant启动的窗口可以不用第三方工具(比如xshell、secure等)连接centos7.9,于是尝鲜试了下还可以,导致系统文件格式是vmdk了(网上有vmdk转vdi的方法,我试了不行)。可用了差不多1年,创建这个系统的磁盘满了,三天两头的清理文件,头大。网上一顿搜试了,操作风险太大,怕把之前搭建的环境弄坏了,忍了几天实在忍不住动手弄了,再加上这个系统盘F盘马上要爆满了,某天下午一顿猛清理F盘文件时,骚操作把之前备份的镜像文件给删除了,傻眼了。没办法,重新安装centos系统。

   建议大家用第三工具(比如xshell、secure等)去连接安装好的centos,这样系统文件格式是vdi,很容易的扩容(我已测试)。

2.需求

现在面临的需求场景是这样:

  • 要求centos虚拟机可以yum install、wget、docker拉互联网镜像,因此需要访问互联网。
  • centos需要访问本地宿主机的ip。
  • 本地xshell可以ssh访问cenots虚拟机。

因此为了实现我的目标需求,采用了 nat+host-only方式对虚拟机进行设置。在设置的过程中花了一些时间,遇到一些坑,为了总结经验就写了该文章。

3.核对环境

  查看centos7.9版本号:

[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

下载地址:centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云,选择标红版本并下载到本地。

viturbox版本: Downloads – Oracle VM VirtualBox,下载标红版本并安装。

我安装的是7.0

4.virtualbox创建虚拟机

新建虚拟机

配置内存大小

注意选择vdi,标红选项。后续磁盘满了就很容易的扩容。

虚拟机创建完后信息如下:

5.安装centos7.9和配置

1)安装系统

基本很简单,大家一步一步操作即:

注意两步:

设置root的密码:

2)配置网络

a、虚拟机网卡有哪些连接方式?

VirtualBox中有4中网络连接方式:

  • NAT
  • Bridged Adapter
  • Internal
  • Host-only Adapter

先来一张图,通过这张图就很容易看出这4种方式的区别:

b、NAT

NAT:Network Address Translation,网络地址转换

NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:

Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Guest的存在。

Guest可以访问主机能访问到的所有网络,但是对于主机以及主机网络上的其他机器,Guest又是不可见的,甚至主机也访问不到Guest。

**虚拟机与主机的关系:**只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。

**虚拟机与网络中其他主机的关系:**只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。

**虚拟机与虚拟机的关系:**相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。

c、Bridged Adapter(网桥模式)

网桥模式,你可以这样理解:

它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。

网桥模式下的虚拟机,你把它认为是真实计算机就行了。

**虚拟机与主机的关系:**可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。

**虚拟机于网络中其他主机的关系:**可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。

**虚拟机与虚拟机的关系:**可以相互访问,原因同上。

d、Internal(内网模式)

内网模式,顾名思义就是内部网络模式:

虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。

**虚拟机与主机的关系:**不能相互访问,彼此不属于同一个网络,无法相互访问。

**虚拟机与网络中其他主机的关系:**不能相互访问,理由同上。

**虚拟机与虚拟机的关系:**可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。

e、Host-only Adapter(主机模式)

主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。

我们可以理解为Guest在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。

**虚拟机与主机的关系:**默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。

**虚拟机与网络主机的关系:**默认不能相互访问,原因同上,通过设置,可以实现相互访问。

**虚拟机与虚拟机的关系:**默认可以相互访问,都是同处于一个网段。

f、 设置Nat网络

设置nat网络是为了让虚拟机可以访问互联网。

设置前先把虚拟机关机,笔者在这里踩坑了很久。

  1. 在 VirtualBox 主控制界面点击 【管理】–【工具】–【Network Manager】–【添加新NAT网络】
  2. 在弹出的对话框中,设置为【192.168.100.0/24】,【确定】

入下图所示:

在管理界面点击你安装的centos7.9 鼠标右键【设置】–【网络】–【网卡1】,【连接方式】选择【NAT网络】,【界面名称】选【NATNetwork】,【确定】,截图如下:

【启动】

登陆进系统之后,运行:

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

将【ONBOOT】改为【yes】 具体配置如下:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="59565fb4-e227-409b-b9a0-f9d2a8ee3f02"
DEVICE="enp0s3"
ONBOOT="yes"

重启网络服务:

systemctl restart network

此时可以正常联网了,ping www.baidu.com如图所示:

但是此时还不能通过 SSH 登陆服务器。

g、设置Host-only网络

设置前先把虚拟机关机,笔者在这里踩坑了很久。

1.在【管理】–【全局设定】–【网络】中,应该能看到【仅主机(Host-Only)网络】的选项卡。在安装完 VirtualBox后,在计算机的【网络和共享中心】–【更改适配器设置】中可以看到【VirtualBox Host-Only Network】:

2.右键【属性】–【Internet协议版本4(TCP/IPv4)】中可以看到 IP 地址是【192.168.56.1】:

回到 VirtualBox,选择【编辑仅主机(Host-Only)网络】。可以看到:

【设置】–【网络】–【网卡2】–【启用网络连接】,【连接方式】选【仅主机(Host-Only)网络】:

开机。

执行下列命令:

cd /etc/sysconfig/network-scripts/

复制一份网卡配置

cp ifcfg-enp0s3  ifcfg-enp0s8 #复制仅主机的网卡配置文件vi ifcfg-enp0s8  # 配置

添加【IPADDR】和【NETMASK】,修改【DEVICE】为【enp0s8】,【BOOTPROTO】为【static】:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s8"
UUID="59565fb4-e227-409b-b9a0-f9d2a8ee3f02"
DEVICE="enp0s8"
ONBOOT="yes"
IPADDR="192.168.56.10"
NETMASK="255.255.255.0"

重启网络服务。

systemctl restart network

使用xshell连接:

到此centos7.9算安装好了,但你别高兴得太早,后面你有一堆的“惊喜”。我已遇到并解决,在此给大家说下,免得浪费大家的宝贵时间。

安装centos7.9是没带wget和yum,要自己手动安装,大家可以参考这个链接搞定:

https://www.cnblogs.com/dennisdong/p/17037248.html

若你不安装yum和wget,你后面是不能安装jdk、tomcat、docker等,因为需要安装一堆的依赖rpm文件,我开始被这个坑惨了。搞了很久。大家放心参考这个链接去轻松搭建环境,放心自我吧!

参考:

virtualbox centos7 nat+host-only方式联网踩坑总结-阿里云开发者社区

https://www.cnblogs.com/dennisdong/p/17037248.html

Technology技术分享

https://www.cnblogs.com/dennisdong/p/17037248.html
https://www.cnblogs.com/Hongxuanred/p/18314277

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java 并发编程:Java 线程池的介绍与使用
  • C# 串口通信(通过serialPort控件发送及接收数据)
  • Android 实现屏幕录制
  • GCKontrol-GCAir工具链在飞机功能系统设计中的应用
  • 安装 electron 报错解决
  • 你有GitHub Models,我有CSGHub和StarShip
  • 谷粒商城实战笔记-105~107-全文检索-ElasticSearch-入门
  • Mac OS平台,利用 gifify 制作gif教程
  • RK3568笔记五十:SPI通信-回环测试
  • vue3表格组件formatter
  • 视频超压缩保持质量 ffmpeg
  • 该设备几乎不消耗任何功率就能发射无线电波,且不违反物理定律
  • 掌握Python爬虫中的BeautifulSoup4:从环境搭建到实战演示
  • conda操作总结
  • 【数据湖与数据仓库】数据湖与数据仓库的区别与应用
  • python3.6+scrapy+mysql 爬虫实战
  • Android系统模拟器绘制实现概述
  • CentOS7 安装JDK
  • CentOS从零开始部署Nodejs项目
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • css布局,左右固定中间自适应实现
  • JavaScript学习总结——原型
  • JSDuck 与 AngularJS 融合技巧
  • Js基础——数据类型之Null和Undefined
  • node-glob通配符
  • php ci框架整合银盛支付
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Vue.js-Day01
  • 从零开始的无人驾驶 1
  • 浮现式设计
  • 高程读书笔记 第六章 面向对象程序设计
  • 实习面试笔记
  • 手写双向链表LinkedList的几个常用功能
  • 树莓派 - 使用须知
  • 我与Jetbrains的这些年
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 写代码的正确姿势
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • #### golang中【堆】的使用及底层 ####
  • #{} 和 ${}区别
  • #window11设置系统变量#
  • $L^p$ 调和函数恒为零
  • (js)循环条件满足时终止循环
  • (poj1.2.1)1970(筛选法模拟)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (二)fiber的基本认识
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (原)本想说脏话,奈何已放下
  • (转)【Hibernate总结系列】使用举例
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .Net 代码性能 - (1)
  • .NetCore实践篇:分布式监控Zipkin持久化之殇