Linux 入门指南:CentOS 7 虚拟机搭建与网络配置
文章目录
Linux 开篇:从操作系统本质到虚拟机环境搭建
本文是 Linux 系列的第一篇。我们从"操作系统是什么"讲起,梳理 Linux 的来龙去脉,然后一步步搭建 CentOS 7 虚拟机环境。重点是把网络原理说透,每一步配置都有原因。
一、为什么先聊操作系统?
1.1 计算机世界的三层结构
把一台电脑拆开来看,可以分为三层:
┌──────────────────────────────────┐
│ 应用软件(微信、QQ、浏览器) │ ← 你每天直接用的
├──────────────────────────────────┤
│ 操作系统(Windows / Linux) │ ← 中间人,管上管下
├──────────────────────────────────┤
│ 硬件(CPU、内存、磁盘、网卡) │ ← 看得见摸得着的物理设备
└──────────────────────────────────┘
- 硬件是物理设备,但它们自己不会"协作",CPU 不知道什么时候该读磁盘,磁盘不知道数据该送到哪里。
- 应用软件需要用到硬件资源(比如微信要调用摄像头),但如果让每个 App 都自己去操控硬件,一台电脑上跑几十个 App,抢资源、打架、崩溃是必然的。
- 操作系统就是中间那个管理者:它把硬件资源抽象成统一的接口,应用程序通过操作系统来使用硬件。
所以操作系统本质上是一个资源管理器 + 服务提供者。
1.2 操作系统的正式定义
**操作系统(Operating System,简称 OS)**是管理和控制计算机硬件与软件资源的系统软件,是直接运行在"裸机"上的最基础软件即系统软件,任何其他软件都必须在操作系统的支持下才能运行。
两个关键词:
- 系统软件:它本身是软件,但不是"应用",而是为应用提供运行环境的底层软件。
- 直接运行在裸机上:OS 之下没有别的软件了,它直接面对硬件。
1.3 常见操作系统分类
| 类别 | 代表 | 特点 |
|---|---|---|
| 桌面/移动端 | Windows、macOS、Android、iOS | 图形化,面向普通用户 |
| 服务器端 | Linux(CentOS、Ubuntu)、Windows Server | 稳定、高并发,通常命令行操作 |
| 嵌入式 | 嵌入式 Linux、FreeRTOS | 裁剪过的,跑在路由器、车载设备、智能网关里 |
这里我们关注的 Linux,正是服务器端和嵌入式领域的事实标准。
二、Linux 从哪来?
2.1 先有 Unix
20 世纪 60 年代末,贝尔实验室的 Ken Thompson 和 Dennis Ritchie 开发了 Unix 操作系统。Unix 设计精巧,很快就流行起来,尤其是在高校和科研机构。
最初 Unix 的源码是开放的,学术界可以自由使用和研究。但后来 AT&T 收紧了版权,Unix 变成商业授权软件,不再开源免费。
2.2 Linus 和 Linux 的诞生
1991 年,芬兰赫尔辛基大学的学生 Linus Torvalds 因为 Unix 的封闭和高昂授权费,决定自己写一个类 Unix 的操作系统内核。他在 comp.os.minix 新闻组发了这样一段后来载入史册的帖子:
“I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu)…”
他把这个项目命名为 Linux,并采用 GPL(通用公共许可证) 开源(任何人都可以自由使用、修改和分发)
Linux 不是抄袭 Unix:Linus 模仿了 Unix 的设计理念和接口规范(POSIX 标准),但没有复制一行 Unix 的源码。所以 Linux 被称为 类 Unix(Unix-like) 系统,它在功能和交互体验上与 Unix 高度相似,但代码是全新的。
💡 冷知识:Linus Torvalds 也是 Git(分布式版本控制系统)的创始人。没错,就是那个程序员每天用的 Git,他为了管理 Linux 内核的协作开发,顺手写了 Git。GitHub 则是后来基于 Git 搭建的代码托管平台,是另一拨人做的。
Linux 的官方标志是一只憨态可掬的企鹅,名叫 Tux。选择企鹅作为 Logo 的寓意是:开源软件就像企鹅一样,属于全人类共同所有。
2.3 Linux 内核 vs Linux 发行版
| 概念 | 是什么 | 比喻 |
|---|---|---|
| Linux 内核(Kernel) | 操作系统的核心,管理 CPU、内存、进程、驱动等 | 汽车的发动机 |
| Linux 发行版(Distribution) | 内核 + 各种常用软件(Shell、图形界面、包管理器等)打包在一起 | 整车 |
如今全球有数百种 Linux 发行版,它们用的都是同一颗 Linux 内核(可能版本不同),区别在于预装了什么软件、用什么包管理器、面向什么场景。
| 发行版 | 家族 | 特点 | 典型场景 |
|---|---|---|---|
| CentOS | Red Hat 系 | 稳定、免费(RHEL 的社区版)、yum 包管理 | 服务器(企业首选) |
| Ubuntu | Debian 系 | 用户友好、社区活跃、apt 包管理 | 个人学习、开发、桌面 |
| Debian | Debian 系 | 极致稳定、软件版本偏保守 | 对稳定性要求极高的服务器 |
| Rocky Linux | Red Hat 系 | CentOS 停更后的继任者 | 服务器替代 CentOS |
本文以及后续教程基于 CentOS 7,它是国内服务器市场使用最广泛的 Linux 发行版之一。
三、为什么需要虚拟机?
学到这里,你可能会想:CentOS 听起来不错,但我电脑上是 Windows,怎么装?
这就是虚拟机登场的地方。你需要在 Windows 上跑 Linux,有三种选择:
- 双系统:把硬盘分区,装一个 Windows + 一个 CentOS,切换要重启——麻烦,而且搞不好 Windows 引导就坏了。
- 云服务器:花钱买,而且摸不到"系统安装和配置"这个学习环节。
- 虚拟机:在你的 Windows 上用软件"模拟"出一台假电脑,CentOS 就装在这台假电脑里。对 CentOS 来说它以为自己跑在真实硬件上,其实是被虚拟机"骗"了。
VMware 这样的虚拟机软件,可以用软件模拟出一整套硬件(CPU、内存、网卡、磁盘),然后在这套虚拟硬件上安装操作系统 CentOS。
这样一来,你的 Windows 还正常用,CentOS 在另一个窗口里跑,互不影响。而且虚拟机可以随时快照、回滚、克隆。
四、虚拟机网络原理
前面讲的是"为什么用虚拟机",接下来要讲的是搭建环境时最容易卡住的问题:网络到底怎么配。
先记住一个核心思路:主机(Windows)和虚拟机(CentOS)是两台独立的"机器",它们之间要通信,就必须有网卡、有网线、有交换机——只不过这些都是软件虚拟出来的。
4.1 虚拟网卡
VMware 安装完成后,你的 Windows 上会多出两块虚拟网卡(在控制面板 → 网络和共享中心 → 更改适配器设置 中可以看到):
VMware Virtual Ethernet Adapter for VMnet1VMware Virtual Ethernet Adapter for VMnet8
如果装完 VMware 发现没有这两张网卡,说明安装出了问题,需要重装修复。
这两块虚拟网卡就是 Windows 主机通往虚拟机的"门"。 主机通过 VMnet8 这张卡,才能和连接在 VMnet8 交换机上的虚拟机通信。没有门,数据包就进不去也出不来。

对应操作:安装 VMware 后,去 Windows 网络适配器里看一眼,确认有 VMnet1 和 VMnet8 两张虚拟网卡。
4.2 虚拟交换机
VMware 内部自带虚拟交换机。它的工作原理和真实的物理交换机一模一样:连接同一网段的设备,让它们互通。
VMware 提供了三种虚拟网络模式,对应不同的使用场景:
| 模式 | 虚拟网卡 | 特点 | 适用场景 |
|---|---|---|---|
| 桥接模式(Bridged) | VMnet0 | 虚拟机直接连物理路由器,和主机平级,占用真实局域网 IP | 需要局域网内其他设备访问虚拟机时 |
| NAT 模式 | VMnet8 | 虚拟机通过主机"代理上网",主机是虚拟机的网关 | 学习首选,最灵活 |
| 仅主机模式 | VMnet1 | 虚拟机和主机组成一个彻底隔离的小局域网,虚拟机无法访问外网 | 内部实验、安全测试 |
对于学习来说,NAT 模式是最佳选择:虚拟机可以通过主机访问外网(下载软件、更新系统),主机也能访问虚拟机(SSH 连接),而且虚拟机的 IP 不占用真实局域网的地址。
4.3 NAT 模式详解
NAT 模式的通信链路如下:
┌─────────────────────────────────────────────────────────┐
│ Windows 主机 │
│ │
│ ┌──────────┐ ┌──────────────┐ ┌─────────────┐ │
│ │ 物理网卡 │ ←→ │ VMnet8 │ ←→ │ VMnet8 │ │
│ │(连外网) │ │ 虚拟网卡 │ │ 虚拟交换机 │ │
│ └──────────┘ └──────────────┘ └──────┬──────┘ │
│ │ │
└───────────────────────────────────────────────┼────────┘
│
┌─────────────────┼─────────┐
│ 虚拟机内部 │ │
│ ┌──────────┐ │ │
│ │ ens33 │ ←──┘ │
│ │ 虚拟网卡 │ │
│ └──────────┘ │
│ CentOS 虚拟机 │
└────────────────────────────┘

数据怎么走的? 以上网为例,虚拟机里的 CentOS 访问百度:
第 1 步:CentOS 上的浏览器发起请求 baidu.com。数据包从虚拟机的 ens33 网卡发出,目标地址是百度的服务器 IP。
第 2 步:CentOS 查自己的路由表:“目标地址不在我这个局域网里,交给网关”。网关就是 VMnet8 虚拟网卡的 IP(例如 192.168.88.2)。数据包发往 VMnet8 虚拟交换机。
第 3 步:VMnet8 虚拟交换机把数据包转发给连接在同一个交换机上的 VMnet8 虚拟网卡(也就是主机的"门")。主机的 NAT 模块拿到这个包,做一个关键动作,地址转换:把数据包的"源 IP 地址"从 虚拟机内网 IP替换成主机物理网卡的公网/局域网 IP。
第 4 步:替换后的数据包经由主机的物理网卡发出,经过你家路由器,最终到达百度服务器。百度看到的请求来源是你主机的 IP,它完全不知道有台虚拟机在背后。
第 5 步:百度返回数据 → 主机物理网卡收到 → NAT 模块反向转换(目标 IP 从主机 IP 变回虚拟机 IP )→ 通过 VMnet8 网卡 → VMnet8 交换机 → 虚拟机 ens33。
关键理解:在 NAT 模式下,虚拟机的 IP 是主机"代理"出去的。对外网来说,所有请求看起来像是主机自己发的。这也是为什么叫 NAT(Network Address Translation,网络地址转换)。
4.4 虚拟机的 IP 谁来分配?DHCP vs 手动静态 IP
理解了 NAT 数据通路之后,自然有一个问题:虚拟机的 IP 地址哪来的?
NAT 模式下,VMnet8 虚拟交换机上内置了一个 DHCP 服务。DHCP(动态主机配置协议)的作用很简单:局域网里有新设备接进来,DHCP 自动给它发一个 IP 地址,同时告诉它网关是多少、DNS 是多少。设备关机或离开后,这个 IP 回收,下次可以分给别人。DHCP 的好处是零配置:你什么都不用管,插上网线就能上网。家里 Wi-Fi 就是典型的 DHCP。
但学习场景下,DHCP 有一个致命缺点:每次重启虚拟机,IP 可能不一样。今天是 192.168.88.128,明天变成 192.168.88.129:那 FinalShell 存的连接信息就废了,每次都得去查新 IP。
所以我们要手动配静态 IP:给虚拟机固定一个地址,比如 192.168.88.100,永远不变。这条原则不仅适用于虚拟机,以后学习工作中,任何"需要被别的设备通过 IP 找到"的服务器(Web 服务器、数据库服务器、打印机等),都应该配静态 IP。
一句话总结:DHCP 适合"会动的、数量多的"设备(手机、笔记本);静态 IP 适合"不能变的、需要被找到的"设备(服务器、虚拟机)。
五、CentOS 7 安装与网络配置实操
前面原理讲完了,现在我们来做具体配置。每一步后面都标注了对应的原理。
5.1 准备工作
- 从 VMware 官网下载 Workstation Pro 或 Player 版本(Player 免费),一路"下一步"即可安装。
安装完成后,检查 Windows 网络适配器中是否出现了 VMnet1 和 VMnet8 两张虚拟网卡。没有的话需要重装 VMware。
- 从 CentOS 官网或国内镜像站(阿里云镜像、清华镜像)下载 CentOS 7 的 ISO 文件。
5.2 新建虚拟机
打开 VMware → 新建虚拟机 → 选择"典型" → 按照向导完成创建。创建后根据需要调整内存和CPU 配置等。需要选择和配置刚下载的 CentOS 7 ISO 。




5.3 第一步:虚拟机内部设置静态 IP



改为静态 IP(不再是 dhcp),和 VMnet8 同网段。DNS1=8.8.8.8 为 DNS 服务器(谷歌);DNS2=114.114.114.114 为 DNS 备用(国内)
手动配 IP 是为了让虚拟机地址固定。网关填 VMnet8 的网关 IP,所有出网流量都经由主机的 NAT 模块转发。
5.4 第二步:配置 VMware 虚拟网络编辑器
打开 VMware → 编辑 → 虚拟网络编辑器 → 选择 VMnet8:
需要注意的是点击 NAT 设置 可以看到网关 IP(通常是子网 IP 的 .2 地址)。这个网关 IP 和之前配置虚拟机静态 IP 时网关一致。
DHCP 设置看需求,如果手动配静态 IP,可以在这里关闭 DHCP,或者记下它的地址池范围,设置静态 IP 时避开这些地址,否则可能 IP 冲突。
5.5 第三步:配置 Windows 上的 VMnet8 虚拟网卡
打开 Windows 控制面板 → 网络和共享中心 → 更改适配器设置 → 找到 VMware Virtual Ethernet Adapter for VMnet8→ 右键 → 属性 → Internet 协议版本 4(TCP/IPv4)→ 设置为:
IP 地址和和 VMnet8 子网同一网段即可。VMnet8 虚拟网卡就是主机进入虚拟机所在局域网的"门牌号"。配置好了主机才能和 VMnet8 交换机上的虚拟机通信。
六、远程连接:SSH 协议和 FinalShell
6.1 为什么不用虚拟机自带的终端?
可以,但体验很差:
- 鼠标在虚拟机和主机之间切来切去
- 不能复制粘贴(或者很不方便)
- 字体小、不能多窗口、不能传文件
所以实际工作中都是虚拟机在后台跑着,用 SSH 客户端从主机连上去操作。
6.2 SSH 是什么?
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地远程登录和操作另一台计算机。它把你在本地终端敲的每一条命令加密后传输到远程服务器,远程服务器执行完把结果加密后传回来。
Linux 上跑的 SSH 服务通常叫 sshd(SSH Daemon),默认监听 22 端口。
SSH 协议底层采用 RSA 非对称加密:有一对密钥(公钥和私钥),公钥加密的数据只有私钥能解开,反之亦然。也就是说公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。
6.3 FinalShell:连接虚拟机的利器
FinalShell 是一款国产的 SSH 客户端,比传统的 Xshell/Putty 更好上手,功能也齐全:多标签页、文件传输、系统监控、命令历史、一键保存连接信息等。
连接步骤很简单:
- 打开 FinalShell → 新建 SSH 连接
- 主机填虚拟机的 IP
- 端口默认
22 - 用户名填
root(或你创建的其他用户) - 密码填 CentOS 安装时设置的那个
- 点连接
连上之后,操作的就是虚拟机里的 CentOS 系统了,和直接在虚拟机终端里操作完全一样,但体验好太多。
以上为个人学习总结,旨在梳理个人理解。如有疏漏或不当之处,欢迎指正与交流。如果文章对你有帮助,别忘了点个赞、留个言,让更多的小伙伴看到~ 我们下篇再见!
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)