1. 环境准备与镜像选型:先把地基打对
VMware Workstation Pro 16 装 CentOS7,这套组合我从 2019 年用到 2023 年都还在给新人当练手环境,原因没别的,就是稳、资料多、坑都被前人踩平了。你做运维、学 Linux、搭测试集群,或者只是想在本地跑一个干净的服务端环境,这一套流程基本是绕不开的起点。但它有个特点:看着简单,真正动手时十个人里至少有四个会卡在"网卡不亮""ping 不通外网""Xshell 连不上"这几步上。问题几乎全部出在前期环境没准备干净,而不是中间操作有多难。
这篇东西我按自己实际重装十几遍的经验来写,从镜像下载、虚拟机参数、分区方案一直讲到静态 IP 和远程连接,把每一步"为什么这么填"讲清楚。不用你死记,看完自己就能判断参数该怎么改。适合刚入门 Linux 的、需要临时搭环境做验证的、以及被虚拟机网络折磨过一轮想彻底搞明白的人。
1.1 主机硬件与版本怎么定
VMware Workstation Pro 16 是 2020 年前后的主力版本,它要求宿主机是 64 位系统,Windows 10 或更新的版本跑得最顺。官方给的硬件门槛不高,但那是"能跑",不是"好用"。我自己总结的门槛是这样:宿主内存至少 8GB,低于这个数你给虚拟机分 2GB 会拖垮整个机器;CPU 支持 Intel VT-x 或 AMD-V 硬件虚拟化,这两项在 BIOS 里默认可能是关的,装之前先进 BIOS 确认 VT-x / SVM 是 Enabled 状态,否则虚拟机跑起来会奇慢,甚至报"此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态"。
磁盘空间给虚拟机留 40GB 以上,因为你后面装 Docker、跑数据库、存快照都会吃空间。我一般直接在一个非系统盘里建一个"VM"目录统一放,方便备份和迁移。宿主机如果是笔记本,插着电源再装,别在低电量模式跑安装,中途休眠会毁掉整个安装进度。
提示:安装前先把电脑上其他虚拟机软件(比如 VirtualBox)的虚拟化驱动关掉或卸载。两者同时占用硬件虚拟化层,会让 VMware 启动虚拟机时报 VT-x 被占用,很多人第一次装就是栽在这。
1.2 CentOS7 镜像从哪下、选哪个包
CentOS7 在 2024 年 6 月 30 日已经停止维护,但它在很多生产环境和教学场景里还在用,镜像也一直能下。常见的几个变体要分清楚,选错了要么装出一堆用不上的东西,要么连图形界面都进不去:
| 镜像类型 | 体积 | 适用场景 | 我的建议 |
|---|---|---|---|
| DVD ISO | 约 4.7GB | 需要完整包、要离线装软件 | 新手首选,省心 |
| Minimal ISO | 约 1GB | 纯服务端、最小化安装 | 熟练后用它,启动快 |
| Everything ISO | 约 10GB | 需要全量本地源 | 一般用不到,太占盘 |
| Live GNOME/KDE | 约 1.5GB | 只想体验桌面 | 不建议做学习环境 |
下载渠道优先用国内镜像站,速度快且校验完整。阿里云、清华 TUNA、中科大 USTC 这几个都有 CentOS7 的历史归档目录,进去找 7.9.2009(这是 7 系列最后一个大版本)。下完务必做一次 SHA256 校验,命令在 Windows 的 PowerShell 里就能跑:
Get-FileHash -Algorithm SHA256 .\CentOS-7-x86_64-DVD-2009.iso拿输出的值和站点上公布的校验值比对,一致才算下载完整。这一步别跳,我见过不止一次因为 ISO 下到一半断了,安装过程走到一半报"介质校验失败",白白浪费半小时。
版本上我一般直接锁定CentOS-7-x86_64-DVD-2009。原因很实在:7.9 是 7 系列的收官版,更新源里能拿到的包最全,跟各种老版本工具(比如某些 JDK、Docker 老版本)的兼容问题最少。你要做实验环境,选它最不容易踩雷。
2. 虚拟机创建:参数怎么填才不返工
虚拟机的创建界面看着一堆选项,其实真正会影响到后续使用的就那几个:兼容性版本、操作系统类型、网络模式、磁盘方式和大小。其他的填错了还能回头改,这四个填错,要么重建,要么花时间调。我按顺序把它们讲透,你照着填基本不用返工。
2.1 新建向导里的每一步取舍
打开 VMware Workstation Pro 16,点"创建新的虚拟机",会先问你选典型还是自定义。别选典型,典型模式会把内存、CPU、网络模式全部按默认给你定死,后面要调还得进设置里翻。直接选"自定义(高级)",多花两分钟,省后面半小时。
第一步兼容性,选 "Workstation 16.x"。这个选项决定了这个虚拟机最低能在哪个版本的 VMware 上打开,选太高,以后换机器可能读不了;选太低,有些新特性用不了。16.x 对应你现在这个版本,最匹配。
第二步"安装客户机操作系统",选"稍后安装操作系统"。为什么不在这一步直接挂 ISO?因为如果这里就挂镜像,VMware 会走"简易安装"流程,它会自动给你分区、设置默认用户,你失去对安装过程的控制权,学不到东西也改不了参数。选"稍后安装",等虚拟机建好了再手动挂载 ISO,整个安装过程完全自己掌控。
第三步客户机操作系统,选 "Linux",版本选 "CentOS 7 64 位"。这里选对了,VMware 会自动为这个系统优化虚拟硬件参数,选错了可能出现鼠标漂移、分辨率异常这类小问题。
2.2 硬件参数背后的算账逻辑
位置和名称自己定,注意路径别带中文和空格,有些脚本工具对中文路径支持不好。接下来是处理器和内存,这两个看宿主机给:
- 处理器:宿主是 4 核以上就给虚拟机 2 核,8 核以上可以给 4 核。给太多会拖慢宿主机,给太少编译软件会卡。处理器核心数不要超过宿主物理核数的一半,这是条经验线。
- 内存:宿主 16GB,给虚拟机 4GB 很舒服;宿主 8GB,给 2GB,别超过。CentOS7 最小安装模式下其实 1GB 就能跑起来,但要装 Docker、跑编译,2GB 是底线。你给内存时看宿主机任务管理器里的可用内存,留出至少 4GB 给宿主,剩下的再分。
网络类型这一步很关键,三个选项的意义我先给结论,具体原理后面第四章展开:
| 网络模式 | 宿主机能否访问虚拟机 | 虚拟机能否上网 | 适用场景 |
|---|---|---|---|
| 桥接(Bridged) | 能,同网段直连 | 能,等于局域网一台机器 | 要当独立服务器用、要给别人访问 |
| NAT | 能(宿主机可访问) | 能,借宿主机网络出去 | 本地开发、学习,最省心 |
| 仅主机(Host-only) | 能 | 不能 | 纯隔离环境、安全实验 |
学习环境我一般选NAT,因为它不占用你路由器的 IP,换 Wi-Fi 环境 IP 也不会变,虚拟机自己就能上外网。等你熟练掌握再玩桥接。
磁盘这一步,选 "SCSI"(默认推荐),然后选"创建新虚拟磁盘"。磁盘大小给 20GB 起步,学习用 20GB 够,要装一堆服务给 40GB。关键在这里:下面有"将虚拟磁盘存储为单个文件"和"拆分成多个文件"两个选项。我推荐拆分,单个文件在你拷贝虚拟机到另一台机器时,如果中途断了,整个文件可能报废;拆分文件断了一个小的还能重下。性能差别在实际使用中基本感受不到。
最后"编辑虚拟机设置"里,把"CD/DVD"指向你刚下好的 CentOS7 ISO,勾上"启动时连接",网络适配器确认是 NAT。到这一步虚拟机就建好了,可以开机装系统了。
3. CentOS7 安装实操:从引导到登录
按下"开启此虚拟机",屏幕上出现 VMware 的 BIOS 画面,几秒后进入 CentOS7 的安装菜单。这个菜单停留 60 秒会自动选第一项,你手快的话直接上下键选 "Install CentOS 7" 回车。注意菜单里有个 "Test this media & install",它会花几分钟校验 ISO,如果你下载时已经校验过,这里可以跳过,直接选第一项省时间。
3.1 语言、分区与软件选择
进安装界面第一步选语言,我建议直接选"中文"——不是看不懂英文,而是初学阶段中文界面能让你更专注于"每一步在干什么",而不是"这个单词啥意思"。你要是想练英文环境,选 English 也完全可以,操作路径一模一样。
接下来是安装信息汇总页,三个带黄色感叹号的必须处理掉才能开始安装:安装位置、软件选择、网络和主机名。先点"安装位置"。
分区这里最见功夫。自动分区它会给你分一个 LVM 结构,能用但不够透明。我第一次学 Linux 时就是手动分的,后来一直保持这个习惯。选"我要配置分区",点完成,进手动分区界面。我的标准方案:
/boot:1GB,文件系统 xfs。这是引导分区,放内核和引导文件,1GB 足够且不会浪费。swap:2GB,文件系统 swap。交换分区,等于 Windows 的虚拟内存。经验值是内存的 1 到 2 倍,但别超过 8GB,现在机器内存大,2GB 到 4GB 就够日常用。/:剩余全部空间,文件系统 xfs。根分区,CentOS7 默认就用 xfs,别改 ext4,没特殊需求就跟着默认走最稳。
分完点"完成",它会弹窗让你确认,点"接受更改"。
软件选择这一步,看你要干什么:
- 只想当服务器练命令行、装 Docker、跑服务,选"最小安装"。系统干净,占用小,启动快,你要装的每个包自己清楚装了啥。
- 需要图形界面,选"GNOME 桌面",或者"服务器(带 GUI)"。
- 学习阶段想省心,选"基础设施服务器",它装了一堆常用工具。
我一般选最小安装,然后后面需要什么再yum install。这样你能清楚地知道系统里有什么,而不是面对一个塞满东西的庞然大物。
3.2 用户与网络初始化
点开"网络和主机名",把右上角那个以太网开关打开(一般是 ens33)。这时候 DHCP 会给你分配一个 IP,主机名可以顺手改成你想要的名字,比如centos7-test。改主机名这一步很多人忽略,但后面你用远程连接时,一个有意义的主机名比一长串默认名字好认得多。
开始安装后,会要求你设置 root 密码。这条我踩过坑:弱密码它只警告不阻止,但如果你点了两次"完成"用了弱密码,系统依然会装好,只是安全性差。自己学习用,设一个自己能记住的复杂一点的就行,别真用 123456。密码设完等进度条走完,大概 10 到 20 分钟,取决于宿主机性能。
装完点"重启",重启后会有一个初始设置界面,要你接受许可证、创建普通用户。普通用户这里建议创建,日常操作别一直用 root,这是 Linux 的基本习惯。创建完就进入登录界面了。
3.3 安装后第一次开机必做的几件事
系统起来第一件事,先确认网络:
ip addr看 ens33 有没有拿到 IP。如果是 NAT 模式,它应该已经从 VMware 的 DHCP 拿到一个 192.168.x.x 的地址。然后测外网和域名解析:
ping -c 4 114.114.114.114 ping -c 4 www.baidu.com第一条测网络通不通,第二条测 DNS 解析通不通。两条都通说明基础网络没问题。如果第一条通第二条不通,是 DNS 没配;第一条就不通,是网关或网卡配置问题,第四章细讲。
接着更新一下系统时间,避免后面日志时间错乱:
timedatectl set-timezone Asia/Shanghai如果你要频繁在宿主机和虚拟机之间复制粘贴、拖拽文件,装一下open-vm-tools,比挂载 ISO 装 VMware Tools 省事得多:
yum install -y open-vm-tools systemctl enable --now vmtoolsd装完复制粘贴和分辨率自适应就都正常了。这一步不属于必需,但装了之后体验提升很明显。
4. 网络配置:NAT、桥接怎么选,静态IP怎么写
网络配置是这套流程里最容易翻车的部分,也是热词里出现频率最高的。核心就三件事:选对网络模式、搞清楚 IP 从哪来、把配置写对文件。我按最常用的 NAT 模式讲透,再补上桥接的差异,你两种都会了,其他模式(仅主机、自定义)看一眼就懂。
4.1 三种网络模式到底差在哪
用生活化的说法:桥接模式是把虚拟机当成你家局域网里的另一台真机,它从你的路由器拿 IP,跟你的电脑平级。别人在同一局域网里能直接访问它,它也能访问局域网里其他设备。缺点是换 Wi-Fi(比如从家到公司)IP 会变,且会占用路由器的一个 IP 号段。
NAT 模式是虚拟机躲在你的电脑后面,共享你的网络出去。虚拟机在一个独立的小网段(比如 192.168.88.0/24),你的电脑相当于这个网段的路由器。虚拟机上网靠你电脑转发,外面看不到它,但它能出网上。优点是稳定、不占用路由器 IP、换环境不变;缺点是局域网其他机器默认访问不到它(除非在 VMware 里配端口转发)。
仅主机模式是虚拟机只能跟你的电脑通信,连不上外网。做安全实验、隔离测试用,日常学习一般用不上。
学习环境我强烈推荐NAT。理由:你换到没有 Wi-Fi 的地方,插网线它还能用;你换一个 Wi-Fi,IP 不变,配置文件不用改;宿主机访问虚拟机一直通。这三点加起来,能让你的学习体验平滑很多。
想改 NAT 网段,进 VMware 的菜单"编辑 → 虚拟网络编辑器",选中 VMnet8(NAT 对应 VMnet8,桥接对应 VMnet0),点"更改设置"获取管理员权限,然后可以改子网 IP 和掩码。默认一般是 192.168.x.0/24,网关是 x.2。记住网关是 .2 不是 .1,这是 VMware 的规矩,很多人写 .1 结果连不通,就因为这个。
4.2 NAT 模式下静态IP配置全过程
DHCP 拿到的 IP 每次重启可能变,做开发环境你肯定希望固定。所以配静态 IP。先确认网卡名字:
nmcli device status或者直接ip addr,看那个 ens 开头的名字,常见是ens33、ens160,用你自己的名字。然后进配置文件目录:
cd /etc/sysconfig/network-scripts/ ls你会看到ifcfg-ens33这样一个文件。改之前先备份:
cp ifcfg-ens33 ifcfg-ens33.bak然后编辑:
vi ifcfg-ens33把内容改成下面这样(IP 段按你虚拟网络编辑器里的网段来,我这里是 192.168.88.x 举例):
TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.88.100 PREFIX=24 GATEWAY=192.168.88.2 DNS1=192.168.88.2 DNS2=114.114.114.114几个关键点解释一下:BOOTPROTO=static是从 DHCP 改成静态;ONBOOT=yes是开机自动启用网卡,这个必须是 yes,很多人装完系统网卡不亮就是因为这里默认是 no;IPADDR你选的地址必须在虚拟网络编辑器给的子网里,且不能和 DHCP 池冲突,一般选 x.100 到 x.200 之间比较安全;GATEWAY和DNS1都写网关地址 .2,因为 NAT 模式下 DNS 请求也是通过网关转发,DNS2加个公共 DNS 做备份,防止网关 DNS 出问题时完全解析不了。
保存退出后重启网络:
systemctl restart network注意:CentOS7 里
systemctl restart network和nmcli connection up ens33两种方式都能生效,但如果你两个网络管理服务(NetworkManager 和 network)状态混乱,会出现改了配置不生效的情况。稳妥做法是先用systemctl restart network,然后ip addr确认,不生效再看服务状态。
重启后验证:
ip addr show ens33 ping -c 4 192.168.88.2 ping -c 4 114.114.114.114 ping -c 4 www.baidu.com从网关到公网到域名依次测。全通就说明配置没问题了。
4.3 桥接模式配置与远程连接实测
桥接模式的配置跟 NAT 一样的文件、一样的写法,区别只在网络段。桥接下你要从你自己路由器的网段里选一个没被分配的 IP,比如你家路由器是 192.168.1.0/24,网关 192.168.1.1,那虚拟机的配置就是:
BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.200 PREFIX=24 GATEWAY=192.168.1.1 DNS1=192.168.1.1 DNS2=114.114.114.114桥接最容易出的问题是:选错了桥接的物理网卡。虚拟网络编辑器里 VMnet0 要桥接到你现在实际联网的那块网卡,如果你电脑同时有有线网卡和无线网卡,桥接选错会完全不通。改法是虚拟网络编辑器里把 VMnet0 的"桥接到"改成"自动",或者手动指定当前联网那块。
网络通了之后,就可以远程连接了。用 Xshell、MobaXterm、FinalShell 这类工具都行,新建一个 SSH 连接,主机填虚拟机 IP,端口 22,用户名填你创建的普通用户或 root,密码对上就能连。连上以后你会发现比在虚拟机窗口里敲命令舒服太多,复制输出、开多个会话都方便。
如果你想用 root 直接 SSH 登录(默认是允许的,但有些加固过的环境会禁),确认/etc/ssh/sshd_config里PermitRootLogin是yes。学习环境保持默认就行。
5. 常见问题与排查技巧实录
前面步骤都对,还是可能出问题。我把这几年被问得最多、自己也踩过的坑整理成一张速查表,再补几条经验性的建议。
5.1 网络类问题速查表
| 现象 | 最可能的原因 | 排查命令 | 解决 |
|---|---|---|---|
| 网卡不亮,ip addr 只有 lo | ONBOOT 是 no 或没重启网络 | cat ifcfg-ens33 | 改 ONBOOT=yes,重启网络 |
| 能 ping 通 IP,ping 不通域名 | DNS 没配或配错 | cat /etc/resolv.conf | 补 DNS1,重启网络 |
| ping 网关都不通 | IP 跟网关不在同网段,或网关写错 | ip addr、ping 网关 | 检查 IPADDR/GATEWAY/.2 结尾 |
| 宿主机 ping 不通虚拟机(NAT) | 宿主防火墙拦了 VMnet8 | 宿主防火墙设置 | 放行 VMnet8 或关宿主防火墙 |
| 昨天能连今天连不上 | IP 被 DHCP 分给别人了,或改成了动态 | ip addr | 配静态 IP 彻底解决 |
| 外网通了但 yum 装不了 | yum 源过期 | yum makecache | 换阿里云 yum 源 |
/etc/resolv.conf这个文件要特别说一句:CentOS7 里网络重启后它会根据 ifcfg 文件重新生成,你手动改它重启网络后会被覆盖。所以 DNS 一定要写在ifcfg-ens33的DNS1里,不要只改 resolv.conf。
5.2 安装与运行类问题
卡在"License information"进不去:这是图形界面下常见的情况,鼠标点了没反应。按Ctrl+Alt+F2切到文字终端,看是不是有服务卡住。或者直接Ctrl+Alt+Insert重启虚拟机重新走一遍,一般第二次就正常。这通常是 VMware 的显示适配问题,装完 open-vm-tools 后基本不再出现。
安装完成后重启进不了系统,卡黑屏:多半是你在安装时 BIOS 启动顺序还指向光驱,虚拟机在尝试从 ISO 引导。进虚拟机设置把 CD/DVD 的"启动时连接"去掉,或者进 VMware 的启动顺序把硬盘提到光驱前面。这个坑很典型,新手会以为是系统装坏了。
虚拟机跑起来特别慢:查 BIOS 的 VT-x / AMD-V 是否开启,这是第一位的。其次看宿主有没有同时开着 Hyper-V 或其他虚拟化软件,冲突的话性能会掉一大截。内存给够也会改善,2GB 是底线。
装完发现磁盘不够用:虚拟机磁盘可以直接在设置里扩容,但扩完之后进系统用fdisk -l能看到新空间,还得用growpart加xfs_growfs扩展分区和文件系统才能真正用上。这一步建议在扩容前做快照,操作错了能回滚。
5.3 我踩过的坑和几条私房建议
第一,快照是你最好的朋友。在装完系统、网络配好、重启验证过之后,立刻打一个快照,命名"基础环境-可用"。后面不管你把系统搞成什么样,一键回滚,五分钟回到这个干净状态。我早期没有快照习惯,把系统搞崩了只能重装,一个下午就没了。VMware 的"快照管理器"就在菜单栏里,别懒得用。
第二,网络配置改完一定重启验证再往下走。很多人改完配置文件不重启网络,直接去测远程连接,测不通就开始怀疑人生。顺序永远是:改配置 →systemctl restart network→ip addr确认 →ping三层验证 → 再测远程。这个习惯养成后,排错效率高一大截。
第三,yum 源早点换成国内的。CentOS7 停维之后官方源基本用不了,得换成阿里云、华为云的归档源,否则yum install一定会报错。换源流程不复杂,网上模板很多,但要注意把$releasever变量处理对,它可能拿不到正确的版本号。我自己习惯直接写死7,避免变量解析问题。
第四,养成改配置前备份的习惯。cp ifcfg-ens33 ifcfg-ens33.bak这一行敲下去只要两秒,但当你配置改错又忘了原来长什么样的时候,它能救你一命。我还会把每次大改动前的关键文件统一放到一个/root/backup目录,加个日期后缀,回头找起来清楚。
第五,别一开始就追求完美环境。新手容易犯的毛病是:想一步到位配好所有东西,网络、Docker、防火墙、定时任务全上,结果哪一步出问题都定位不到。正确做法是分层推进:先保证系统能起来、网络能通,打快照;再装你需要的服务,再打快照。每一层都可回滚,排错范围也就一层。
这套流程走下来,从零到能远程连上、能装包、能跑服务,熟练了半小时内能搞定。真正花时间的不是操作,是理解和排错。把上面这些原理和坑点搞明白,后面你再遇到任何虚拟机网络问题,基本都能自己定位到是哪一层出了问题,而不是凭感觉瞎试。