
装 CentOS7 这件事我在自己机器、公司测试机、给同事远程指导的电脑上前后做过十几次从 VMware Workstation Pro 16 一路踩到老版本的 15从 BIOS 引导踩到 UEFI从桥接踩到 NAT最后发现新手真正卡住的从来不是怎么点下一步——那个环节有手就行。卡住的地方永远是三件事装完系统网卡起不来、ping 不通外网、远程工具连不上。所以这篇我把 VMware Workstation Pro 16 安装 CentOS7 的完整流程和配置网络这两件事绑在一起写一边装一边把网络打通装完就能用不用来回折腾两遍。这篇文章适合谁看完全没碰过虚拟机的在校学生、需要临时搭一套 Linux 测试环境的后端和运维、以及被虚拟机网络配置这四个字劝退过好几次的人。我尽量不用读者这种词就当是坐在你旁边我把键盘抢过来一步步敲给你看顺手把每一步背后的为什么要这么点讲清楚这样你下次换台机器、换个发行版也能自己推出来该怎么配。1. 方案选型与整体设计思路动手之前先把选型讲透不然后面全是照着抄抄完一出错就完全不知道从哪儿查。虚拟机跑 Linux 这套东西选型只有三个决策点跑什么发行版、用哪个虚拟化软件、用哪种网络模式。这三件事定下来后面 90% 的坑都能提前避开。1.1 为什么到现在还有人用 CentOS 7很多人会问CentOS 7 都停止维护了官方在 2024 年 6 月 30 日结束生命周期支持为什么教程还在写它原因很实在企业里存量服务器太多大量业务的部署文档、脚本、依赖包都是按 CentOS 7 写的很多高校的操作系统课、数据库课实验指导书也是按 CentOS 7 出的再比如 Docker、Kubernetes 早期的入门教程默认宿主环境就是 CentOS 7。注意CentOS 7 的官方 yum 源已经下线直接从默认源装软件会报 Could not resolve host: mirrorlist.centos.org。这不是你网络没配好是源没了后面 4.1 节我给换源方案。很多人第一次装完以为网络坏了其实网络好得很。所以我的建议是学基础、跑老项目、做实验用 CentOS 7 完全没问题但要清楚它是维护型环境而不是学习前沿技术的环境。如果你纯粹是想学新技术栈Ubuntu 22.04 / 24.04 的体验会更好但如果你想跟公司生产环境对齐CentOS 7 或者它的替代品Rocky Linux、AlmaLinux、openEuler更合适。这个判断你自己做我下面讲的安装和网络配置逻辑这些发行版其实大差不差。1.2 VMware Workstation Pro 16 和其他方案的取舍虚拟化软件主要有这么几类我列个表你自己对号入座方案适合场景网络配置难度我的评价VMware Workstation Pro 16个人学习、企业测试、多机集群模拟中图形化编辑器很好用功能最全装完基本不用管VMware Workstation Player只跑单台虚拟机低但改网络参数受限免费功能被砍得比较狠VirtualBox免费、跨平台中网络界面没 VMware 直观免费里最稳性能略逊Hyper-VWindows 10/11 自带高网络虚拟交换机概念绕和 VMware 会冲突不能共存WSL2只要一个 Linux 命令行极低不是完整虚拟机学系统管理不够用选 VMware Workstation Pro 16 的理由很简单虚拟网络编辑器这个功能值回票价。桥接、NAT、仅主机三种模式的子网、网关、DHCP 池都能在图形界面里改出问题了直接对着界面看参数比 VirtualBox 和 Hyper-V 那种配置文件里翻半天的方式友好太多。提示VMware Workstation 和 Windows 自带的 Hyper-V、WSL2、沙盒Sandbox、内存完整性核心隔离这四样东西会互相抢底层虚拟化权限。装 VMware 之前如果开过后两样建议先去启用或关闭 Windows 功能里把 Hyper-V 和虚拟机平台关掉否则 VMware 可能报 VMware Workstation 与 Hyper-V 不兼容或者能启动但性能掉一半。1.3 三种网络模式的本质区别重点这是整篇文章最值钱的一段。很多人配网络配到崩溃就是因为从来没搞懂这三种模式在数据包怎么走这件事上的差别。桥接Bridged虚拟机相当于你局域网里一台独立的机器从路由器的 DHCP 直接拿一个和宿主机同网段的 IP。比如你宿主机是 192.168.1.5虚拟机就是 192.168.1.x。特点是对外完全透明同一局域网的其他电脑能直接访问它适合要模拟多台服务器互相通信的场景。缺点是办公网、校园网、公共 WiFi 经常有 MAC 地址管控或者客户端隔离桥接会拿不到 IP甚至把你宿主机网卡搞出问题。NAT虚拟机躲在你宿主机后面共享宿主机的网络出口。虚拟机在一个私有网段VMware 默认是 VMnet8比如 192.168.10.0/24出去的数据包由 VMware 的 NAT 服务做地址转换。特点是虚拟机可以上网但局域网里的其他机器默认访问不到它除非配端口转发。适合绝大多数学习和开发场景。仅主机Host-only虚拟机只能和宿主机通信出不了外网。适合做隔离实验比如你要模拟一台内网服务器故意不让它联网。我一般给新手的第一条建议是先用 NAT。原因有三不需要管路由器宿主机能上网虚拟机就能上网IP 段是 VMware 自己维护的私有段不会和公司网络冲突出问题好排查因为变量少。等你对网络配置熟了再去搞桥接。2. 安装前的硬件与镜像准备准备工作没做对后面会多花两小时。这一节说三件事镜像从哪下、宿主机资源怎么分、创建虚拟机时哪些参数不能瞎点。2.1 CentOS 7 镜像下载与完整性校验因为 CentOS 7 已经进入维护周期尾声官方主站把镜像移到了归档仓库。国内下载走阿里云的归档镜像站速度最稳路径大意是mirrors.aliyun.com/centos-vault/7.9.2009/isos/x86_64/这个目录里通常有这几个文件CentOS-7-x86_64-DVD-2009.iso约 4.5 GB标准完整安装镜像带图形界面和大部分常用包推荐新手直接下这个CentOS-7-x86_64-Minimal-2009.iso约 1 GB最小化安装只有基础命令行适合追求干净、后面自己按需装包的人CentOS-7-x86_64-NetInstall-2009.iso约 500 MB网络安装装的过程中要从源下载包网络不稳会失败CentOS-7-x86_64-Everything-2009.iso约 10 GB全量包除了做离线源一般用不上我自己的习惯是下 DVD 版。虽然文件大但它包含了基础软件组装的时候不用联网、不用等人下载包全程十分钟左右搞定而且以后要装图形界面、要装开发工具组的时候不用再折腾源。下完镜像务必校验一下尤其是从非官方渠道拿的文件。Windows 上可以用 PowerShell 一行命令算哈希Get-FileHash .\CentOS-7-x86_64-DVD-2009.iso -Algorithm SHA256然后跟镜像站目录里的sha256sum.txt对一下。别觉得这一步麻烦我遇到过镜像下到一半断了、文件看着大小对但装到一半报解压错误的情况回头找问题能耗掉一下午。校验一分钟的事能省几个小时。2.2 宿主机资源怎么分才合理分配资源的原则是够用就好别贪尤其是内存和磁盘。虚拟机不是装得越大越好分配过多反而拖慢宿主机、影响你自己的体验。内存CentOS 7 最小化安装跑起来大概占 300–500 MB带 GNOME 桌面大概 1.2–1.5 GB。所以纯命令行学习2 GB 够用4 GB 舒服带图形界面至少 4 GB要在里面跑 Docker、MySQL、Redis 之类8 GB 起要模拟两三台机器的集群先算总账宿主机物理内存最好留出 4 GB 给自己用CPU虚拟机 CPU 核数不能超过宿主机物理核数注意是物理核不是线程数。一般给 2 核就够了跑编译、跑数据库可以给 4 核。分配超过物理核数会让 VMware 排队调度反而更慢这点很多人搞反。磁盘我建议用途建议容量说明纯学习、跑命令20 GB精简置备实际占用远小于此装桌面 开发工具40 GB图形界面和开发包很吃空间跑数据库 / 容器60 GB 以上数据目录会持续增长关于精简置备和厚置备的区别精简置备Thin Provision是虚拟机用多少磁盘才占多少宿主机空间一开始只占几百兆厚置备Thick是一开始就把 20 GB 真实划走。个人机器一律选精简置备省空间只是磁盘碎片会多一些性能差异在 SSD 上基本感受不到。2.3 创建虚拟机时容易被忽略的几个选项点新建虚拟机、选自定义高级、然后是稍后安装操作系统这一步很重要先别挂镜像等虚拟机建好再挂否则可能直接进无交互安装。硬件兼容性选 Workstation 16.x。后面有几个选项新手很容易略过但影响很大固件类型选 BIOS 而不是 UEFI。CentOS 7 对 UEFI 支持没问题但很多老教程、老恢复操作都是按 BIOS 写的选 BIOS 少一层变量。处理器虚拟化引擎把虚拟化 Intel VT-x/EPT 或 AMD-V/RVI勾上。如果你打算在这台虚拟机里再装 KVM 或者跑嵌套虚拟化这一项必须开但如果你宿主机本身已经在虚拟机里比如云主机这一项勾了会报错那就别勾。网络类型按 1.3 节的结论先选 NAT。I/O 控制器类型选推荐的 LSI Logic 或 PVSCSI保持默认即可。磁盘类型SCSI默认即可。声卡、打印机、USB 控制器服务器环境用不上可以在自定义硬件里删掉能省一点资源也让启动更快。还有一个隐藏坑虚拟机名称和存放位置别放在中文路径或者带空格的路径下。VMware 大部分情况能处理但一旦你后面要用命令行调vmrun、写脚本做自动化中文路径会给你带来一堆莫名其妙的编码问题。习惯性用D:\vms\centos7-01这种路径。3. 系统安装全过程实操记录准备工作做完接下来就是上手装。整个过程我会把安装界面里能顺手做掉的事全部做掉因为安装界面里配网络、配主机名比装完之后改配置文件省事得多。3.1 引导阶段语言、时区、键盘挂上 ISO 后开机第一个界面是安装介质选择直接回车选第一项 Install CentOS 7。如果卡在这个界面或者提示找不到介质八成是 ISO 没挂对——虚拟机设置 → CD/DVD → 使用 ISO 映像文件并且勾上启动时连接。进入图形安装向导后第一步选语言。这里有个小建议界面语言选英文English系统语言后面可以再改。原因是中文界面下很多报错信息会被翻译得莫名其妙你拿去搜索都搜不到对应的英文答案而且中文环境下终端里的中文字体渲染经常出问题出现一堆方块。选完语言进主界面先把该点的都点一遍DATE TIME时间和日期时区选 Asia/Shanghai右上角把网络时间打开KEYBOARD键盘默认 English (US) 即可LANGUAGE SUPPORT可以顺手勾上中文支持装完就是中文环境3.2 软件选择最小化装还是带桌面点 SOFTWARE SELECTION左边是基础环境右边是附加组件Minimal Install最小安装只有命令行没有图形界面。占用小、启动快、需要背命令。我推荐做服务器/运维练习时选这个。Infrastructure Server基础设施服务器装了一堆网络服务相关的包做服务器角色练习方便。Server with GUI带 GUI 的服务器命令行 GNOME 桌面。适合完全新手过渡期或者需要跑图形化工具比如浏览器测 Web 应用的场景。GNOME Desktop / KDE Plasma Workspaces完整桌面环境占用最大。我自己的经验是第一次装选带 GUI 的服务器先看到桌面心里有底等你摸熟了再装最小化版本从零搭一次服务那个过程中学到的东西比用桌面多十倍。因为桌面环境下很多服务是自动配好的你根本不知道它做了什么。如果想在最小化系统上补桌面装完后用yum groupinstall GNOME Desktop也能补上只是要配置默认启动目标systemctl set-default graphical.target下载量比较大。3.3 分区方案自动还是手动点 INSTALLATION DESTINATION选中那块 20 GB 的虚拟磁盘然后往下看 PartitioningAutomatically configure partitioning自动分区新手直接用这个它会给你分一个 /boot、一个 swap、一个 LVM 的根分区能跑起来学习够用。I will configure partitioning手动分区想理解 Linux 文件系统的我强烈建议走一遍手动。手动分区的经典方案20 GB 磁盘挂载点建议大小为什么/boot1 GB内核和引导文件512 MB 也行1 GB 更宽松swap2 GB交换分区物理内存不足时兜底/剩余全部根分区系统和软件都装这关于 swap 大小的老说法是物理内存的 1–2 倍那是内存普遍 1–2 GB 时代的经验。现在虚拟机给了 4 GB 内存swap 给 2 GB 就完全够甚至给 1 GB 也行。真正的原则是如果你的应用对内存延迟敏感swap 越小越好因为一旦用上 swap性能会断崖式下跌。虚拟机里给 2 GB 是个安全的折中。分区类型上自动分区默认会用 LVM逻辑卷管理。LVM 的好处是以后能在线扩容、能做快照坏处是对新手来说多一层抽象出问题了lsblk看到的是 lv 而不是分区容易懵。学习阶段可以保留 LVM但你要知道有这么回事。如果你想更直观可以在分区界面把类型从 LVM 改成 Standard Partition。提示分区界面上分区方案那里改完一定要点 Done然后在弹出的摘要窗口里点 Accept Changes否则分区根本没生效。这一步漏点的人特别多回头装完发现只有一个分区还得重装。3.4 网络与主机名在安装界面就配好这是我最想强调的一步。安装主界面上有个 NETWORK HOST NAME点进去左边列表里会有一个Ethernet (ens33)之类的网卡右上角的开关默认是关的OFF点一下打开。打开之后它会通过 VMware 的 DHCP 自动拿到一个 IP一般显示成 192.168.10.x 之类的地址。然后在左下角Hostname那里填一个主机名比如centos7-01点 Apply 应用。为什么要在安装阶段就打开网卡因为 CentOS 7 安装程序会自动把ONBOOTyes写进网卡配置文件。如果你这里没打开装完之后/etc/sysconfig/network-scripts/ifcfg-ens33里就是ONBOOTno开机网卡不启动你会看到ip addr只有一个 lo然后开始怀疑人生。这个坑我踩过当时以为是 VMware 的问题查了两个小时。主机名也建议在这里设好装完再改要动/etc/hostname和/etc/hosts两个文件还得hostnamectl set-hostname麻烦。3.5 root 密码、用户创建与完成安装点 Begin Installation 开始安装安装过程中会让你设两样东西ROOT PASSWORDroot 是超级管理员密码一定要设。如果你设的是弱密码比如123456安装程序会弹两次确认框点两次 Done 就行界面会显示 Weak password 但你确认了它照样接受。学习环境我建议还是设个像样的比如Centos2024因为很多服务MySQL、Redis的默认配置会拒绝弱密码环境。USER CREATION可以创建一个普通用户比如dev并勾选 Make this user administrator 把它加进 wheel 组这样它能通过sudo提权。日常操作建议用普通用户 sudo而不是一直 root 登录这是个好习惯。等进度条走完点 Reboot 重启。重启前记得回到虚拟机设置把 CD/DVD 的启动时连接取消勾选或者改成本地磁盘优先不然可能又从 ISO 引导一遍。重启后出现登录提示符输入 root 和密码输密码时屏幕不显示任何字符包括星号这是正常的不是键盘坏了登录成功后看到[rootcentos7-01 ~]#说明系统装好了。4. 装完必做的初始化配置系统起来只是第一步一个刚装好的 CentOS 7 是缺胳膊少腿的状态源是坏的、常用工具没装、主机名可能不对、时间可能不准。这一节把这些补齐顺手打个快照。4.1 换源解决 CentOS 7 源失效问题先看清问题。执行yum repolist或者yum install -y vim大概率会报错提示找不到 mirrorlist.centos.org或者提示某仓库 404。原因前面说了官方源归档了。解决办法是把仓库文件里的地址从mirror.centos.org换成归档站或者国内镜像。最省事的做法是直接替换仓库文件。先备份cd /etc/yum.repos.d/ mkdir backup mv *.repo backup/然后写一个新的CentOS-Base.repo内容用国内镜像的归档地址[base] nameCentOS-7 - Base - mirrors.aliyun.com baseurlhttps://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/ gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 enabled1 [updates] nameCentOS-7 - Updates - mirrors.aliyun.com baseurlhttps://mirrors.aliyun.com/centos-vault/7.9.2009/updates/$basearch/ gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 enabled1 [extras] nameCentOS-7 - Extras - mirrors.aliyun.com baseurlhttps://mirrors.aliyun.com/centos-vault/7.9.2009/extras/$basearch/ gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 enabled1保存后清缓存重建yum clean all yum makecache这里有个前置条件你的虚拟机必须已经能上网否则换源也没用。判断方法很简单ping -c 3 223.5.5.5能通说明网络在不能通先去解决第 5 节的网络配置。提示gpgcheck1是校验包签名的安全性更好但如果你的环境完全离线或者镜像源不提供 GPG 公钥可以临时改成 0。生产环境别这么干。另外注意$basearch是 yum 的变量会替换成 x86_64 之类的架构名不要手写成固定字符串。4.2 最小化系统必须补齐的工具集如果装的是最小化系统有一个非常反直觉的事ifconfig、netstat、route、service这些命令都没有。不是你不熟是真的没装。它们在net-tools包里而 CentOS 7 默认推荐用ip、ss、systemctl替代。但很多人就是习惯ifconfig那就装上yum install -y net-tools vim wget curl lrzsz bash-completion tree逐个说下为什么net-tools提供 ifconfig、netstat、route排查网络时用着顺手vim最小化系统只有 vivim 的高亮和缩进对写配置很重要wget/curl下载文件和测 HTTP 接口必备lrzsz提供 rz/sz 命令可以在支持 ZMODEM 的终端里直接拖文件比开 SFTP 快bash-completion命令补全敲一半按 Tab 就能补全参数效率翻倍tree看目录结构调试安装路径时很直观另外注意firewalldCentOS 7 默认是开的。学习环境里我一般直接关掉避免它拦掉你以为已经开好的端口systemctl stop firewalld systemctl disable firewalld注意关防火墙只适合学习和内网实验环境。任何对外提供服务的场景都必须保留防火墙用firewall-cmd --add-port精确放行端口。别把学习习惯带到生产上这是个原则问题。SELinux 也是同样的情况。CentOS 7 默认是 enforcing 模式很多应用尤其是老版本的 Web 服务、数据库会因为 SELinux 上下文不对而启动失败报错信息还特别难懂。学习环境可以临时改成 permissivesetenforce 0这只是临时生效重启就恢复。永久改要动/etc/selinux/config里的SELINUX值。我的建议是新手阶段改成 permissive等你理解了 SELinux 的上下文机制再改回 enforcing。直接彻底关掉不是好习惯因为线上环境基本都开着。4.3 时间同步与主机名收尾虚拟化环境有个典型问题虚拟机长时间挂起suspend再恢复后系统时间会漂移。解决办法是用 chrony 做时间同步。CentOS 7 自带 chronyd检查一下状态systemctl status chronyd timedatectltimedatectl会输出几行关键信息本地时间、是否启用 NTP 同步、时区。如果时区不对用timedatectl set-timezone Asia/Shanghai改。如果想手动指定时间服务器编辑/etc/chrony.conf把server那几行换成国内的时间服务器地址然后systemctl restart chronyd。主机名用hostnamectl查看和修改hostnamectl set-hostname centos7-01改完顺手在/etc/hosts里加一行127.0.0.1 centos7-01避免某些程序解析自己主机名时卡几秒。这个小细节在搭建 Hadoop、K8s 集群时特别重要因为那些组件会频繁做主机名解析。4.4 打快照最被低估的一步系统装好、初始化做完、还没开始折腾服务的时候立刻打一个快照。VMware 里点虚拟机 → 快照 → 拍摄快照起个能看懂的名字比如base-clean-with-network。为什么这一步价值极高因为后面你装 Docker、改网络配置、装数据库驱动一定会把系统搞崩那么一两次。有快照你 30 秒就能回到干净状态而不是重装半小时。我自己维护了好几套实验环境每个环境的第一件事永远是打快照节点多了还要给每个节点都打。这是做实验和自学最基本的工程习惯比任何技巧都管用。5. 配置网络NAT 静态 IP 完整实操到核心部分了。前面安装界面的 DHCP 只是让虚拟机临时能上网真正做开发和服务部署你需要一个固定 IP否则每次重启 IP 都变远程工具里的会话、配置文件里的地址全得跟着改。这一节把 NAT 模式下的静态 IP 配法讲透。5.1 先看懂 VMware 的虚拟网络编辑器在 VMware 菜单栏点编辑 → 虚拟网络编辑器注意这里的界面在 Pro 版本才有。点一下右下角的更改设置需要管理员权限然后选中 VMnet8 这一行。里面有几个关键项一定要看清楚子网 IP默认是 192.168.10.0子网掩码 255.255.255.0。这就是你虚拟机的网段。NAT 设置点开后能看到网关 IP默认是 192.168.10.2。这是虚拟机的出口。DHCP 设置点开后能看到起止 IP 地址范围默认类似 192.168.10.128 到 192.168.10.254。将主机虚拟适配器连接到此网络必须勾上它在宿主机上创建一块 VMnet8 虚拟网卡宿主机才能和虚拟机的这个网段通信。这三个值子网、网关、DHCP 池记住了后面写配置文件全靠它们。我给你一个对应的实例项目值网段192.168.10.0/24网关192.168.10.2DHCP 池192.168.10.128 - 192.168.10.254我选用的静态 IP192.168.10.100为什么选 .100 而不是 .128 以上因为要避开 DHCP 池。静态 IP 落在 DHCP 池里理论上会和自动分配出去的地址冲突虽然家庭环境下概率很低但能避就避。.100 在 DHCP 池之外、网关之外很安全。提示如果你想改网段比如 192.168.10.x 和公司网络冲突了就在这里改子网 IP改完点应用VMware 会自动更新 NAT 和 DHCP 设置。改完记得宿主机上那块 VMnet8 网卡的 IP 也跟着变了别用老地址去 ping 虚拟机ping 不通不是虚拟机的问题。5.2 修改网卡配置文件逐行注释CentOS 7 的网卡配置在/etc/sysconfig/network-scripts/下文件名格式是ifcfg-网卡名。网卡名不一定是ens33在 VMware 里一般是ens33但也可能是ens160、eth0。先用命令确认真实名字ip addr show输出里会看到类似2: ens33: BROADCAST,MULTICAST,UP,LOWER_UP这样的行ens33就是网卡名。然后编辑对应文件vim /etc/sysconfig/network-scripts/ifcfg-ens33改成下面这样我逐行加注释TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DEFROUTEyes IPV4_FAILURE_FATALno IPV6INITno NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.10.100 PREFIX24 GATEWAY192.168.10.2 DNS1223.5.5.5 DNS2119.29.29.29逐项解释这几行改不对网络就通不了BOOTPROTOstatic从dhcp改成static表示用手工指定的 IP。这一行不改下面的 IPADDR 会被完全忽略。DEFROUTEyes把这台机器的默认路由指向网关。如果改成 no会出现能 ping 通同网段但上不了外网的诡异现象。IPV6INITno学习环境用不到 IPv6关掉能少一堆日志噪音。NAME/DEVICE必须和实际网卡名完全一致写错了服务启动会报找不到设备。ONBOOTyes开机自动启用网卡。这个前面说过了安装界面里打开网络它就会自动设成 yes。IPADDR静态 IP按 5.1 节的规划填。PREFIX24等同于子网掩码 255.255.255.0。老写法是NETMASK255.255.255.0两种都行新版推荐 PREFIX。GATEWAYVMware 的 NAT 网关地址注意这里是 192.168.10.2不是 .1。DNS1/DNS2域名服务器。223.5.5.5 是阿里的公共 DNS119.29.29.29 是腾讯的。写两个是冗余第一个挂了会用第二个。改完保存重启网络服务systemctl restart network注意 CentOS 7 用的是network服务不是networking那是 Ubuntu 的写法也不是NetworkManager。这里有个小坑CentOS 7 默认启用了 NetworkManager它和 network 服务存在一定的管理权重叠。如果你改了配置文件重启不生效可能是 NetworkManager 在覆盖它。排查方法systemctl status NetworkManager nmcli device status如果 NetworkManager 是 active 状态并且接管了 ens33你可以选择停用它或者干脆用 nmcli 命令来配网络效果一样配置还是写到同一个文件里nmcli con mod ens33 ipv4.addresses 192.168.10.100/24 nmcli con mod ens33 ipv4.gateway 192.168.10.2 nmcli con mod ens33 ipv4.dns 223.5.5.5 119.29.29.29 nmcli con mod ens33 ipv4.method manual nmcli con up ens33我个人习惯是手动改文件 重启 network 服务因为它最直观出问题了一眼就能看到配置文件长什么样。nmcli 适合写自动化脚本但要敲好几次命令还得记语法。5.3 DNS 配置为什么老是失效DNS 是网络配置里最容易反复出问题的地方因为它有两套配置在打架。第一套是网卡配置文件里的DNS1/DNS2这是源头。第二套是/etc/resolv.conf这是实际生效的。正常情况下重启网络服务时系统会把网卡配置里的 DNS 同步写进resolv.conf。但如果你装过 Docker、装过某些网络管理工具或者用了 NetworkManager这个文件可能会被覆盖或者被清空。排查顺序是cat /etc/resolv.conf ping -c 3 223.5.5.5 ping -c 3 www.baidu.com判断逻辑很清晰两个都通网络和 DNS 都正常ping 223.5.5.5通ping www.baidu.com不通并且报 Name or service not knownDNS 没配好检查 resolv.conf两个都不通网关或 IP 有问题回到 5.2 节检查配置如果确认是 resolv.conf 被覆盖了最直接的办法是手动写一份cat /etc/resolv.conf EOF nameserver 223.5.5.5 nameserver 119.29.29.29 EOF但要注意如果 NetworkManager 在跑它可能下次重启又给你覆盖回去。想彻底解决就两条路要么给/etc/resolv.conf加不可变属性chattr i /etc/resolv.conf但改配置时记得先解锁要么就用 NetworkManager 的方式统一管理 DNS。5.4 桥接模式怎么配附适用与不适用场景如果你的场景必须让局域网里其他机器访问这台虚拟机比如用另一台电脑的浏览器访问虚拟机里的 Web 服务或者模拟真实服务器集群那就要用桥接。配置步骤虚拟机设置 → 网络适配器 → 选桥接模式。然后在宿主机上确认桥接到哪块物理网卡。一般用自动如果宿主机有多块网卡有线 无线建议手动指定到正在用的那块否则可能出现桥接到一块没插网线的网卡上然后完全没有网络。虚拟机里同样是改ifcfg-ens33但参数不一样BOOTPROTOstatic IPADDR192.168.1.200 PREFIX24 GATEWAY192.168.1.1 DNS1192.168.1.1注意这里的网段必须是你路由器所在的网段网关是路由器的 IP跟 VMware 的 192.168.10.x 完全没关系了。而且这个 IP 必须在路由器 DHCP 池之外或者干脆让虚拟机用 DHCP 自动获取。桥接模式在下面这些环境里会翻车提前知道能省很多时间环境现象原因公司办公网拿不到 IP 或能拿 IP 但无法通信交换机做了端口安全 / MAC 限制校园网认证失败或被断网需要客户端认证MAC 绑定公共 WiFi完全不通AP 开启了客户端隔离家里路由器一般正常无特殊管控所以桥接模式下上不了网很多时候不是配置错了是网络环境不允许。别在那儿反复改配置文件先换回 NAT 试一下如果 NAT 正常那就是环境问题。5.5 连通性验证命令和结果对照表配完网络按顺序跑这几个命令一层层往上验证# 1. 看网卡是否有 IP ip addr show ens33 # 2. 看路由表是否有默认网关 ip route show # 3. 看 DNS 配置 cat /etc/resolv.conf # 4. ping 网关 ping -c 4 192.168.10.2 # 5. ping 公网 IP ping -c 4 223.5.5.5 # 6. ping 域名验证 DNS ping -c 4 www.baidu.com # 7. 看监听端口比如 ssh ss -tlnp结果怎么解读我整理成表命令期望结果异常时的方向ip addrens33 有 inet 192.168.10.100/24配置文件没生效检查 BOOTPROTOip route有 default via 192.168.10.2DEFROUTE 或 GATEWAY 写错resolv.conf有 nameserver 条目DNS 没写或被覆盖ping 网关通NAT 网关地址错或 VMware 服务没跑ping 公网 IP通宿主机的网络出问题或 VMware NAT 服务异常ping 域名通纯 DNS 问题ss -tlnp有 22 端口在监听sshd 没起来这里还有一个宿主机侧的排查点很多人不知道Windows 服务里有两个和 VMware 网络强相关的服务VMware NAT Service和VMware DHCP Service。如果虚拟机突然全部上不了网而配置一个字没改先去看这两个服务是不是被停了。CtrlR 输入services.msc就能看到把它们启动就行。我遇到过一次系统更新后 NAT Service 被禁用了折腾了半天才发现问题根本不在虚拟机里。6. 远程连接工具配置与连通性排查虚拟机里敲命令虽然也行但实际开发中一定是本地用终端工具连上去因为复制粘贴、多窗口、文件传输的体验差太远。这一节说连接工具怎么配以及连不上怎么查。6.1 Xshell、FinalShell、MobaXterm 怎么选这三个是国内用得最多的工具优势适合谁Xshell稳定、会话管理好、支持各种协议长期做运维、管几十台机器FinalShell自带服务器监控面板、SFTP 联动喜欢可视化、看资源占用MobaXterm集成 X11 转发、多标签、绿色免安装需要跑图形程序、经常换机器连接参数就三个主机192.168.10.100你配的静态 IP端口22用户名root或你创建的普通用户第一次连接会弹出主机密钥确认选中接受并保存这是正常的 SSH 首次连接流程。然后输密码。如果你用的是 VirtualBox 或者别的方案配置逻辑完全一样区别只是虚拟机的 IP 网段不同。比如 VirtualBox 的 NAT 默认是 10.0.2.15桥接则取决于你路由器。这也是为什么我一直强调要理解网段和网关的概念——工具会换、界面会换、命令会换但 TCP/IP 这套模型不变。6.2 用密钥登录替代密码密码登录在本地环境没问题但如果要在自动化脚本里连服务器密钥登录是标准做法。生成密钥对在本地终端或虚拟机里都行ssh-keygen -t rsa -b 4096 -C centos7-lab一路回车会在~/.ssh/下生成id_rsa私钥和id_rsa.pub公钥。把公钥内容追加到目标服务器的~/.ssh/authorized_keys里mkdir -p ~/.ssh chmod 700 ~/.ssh cat id_rsa.pub ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys权限这一步千万不要省。SSH 对权限检查很严格如果.ssh是 777 或者authorized_keys是 644SSH 会直接拒绝用密钥登录而且日志里写的是 Authentication refused: bad ownership or modes不提权限问题新手根本想不到。6.3 连接失败的排查路线图连不上别乱试按这个顺序查第一步确认网络通不通。在宿主机上ping 192.168.10.100。ping 不通就不用管 SSH 了先回去解决网络。注意 Windows 防火墙有时候会拦 ICMP可以临时关掉测试。第二步确认服务在跑。如果能 ping 通但连不上多半是 sshd 的问题。登录虚拟机直接在 VMware 窗口里操作执行systemctl status sshd ss -tlnp | grep 22如果发现 sshd 没启动systemctl start sshd systemctl enable sshd。如果是最小化安装可能连 openssh-server 都没装需要yum install -y openssh-server。第三步确认防火墙没拦。前面我们把 firewalld 关了但如果你没关需要放行firewall-cmd --permanent --add-servicessh firewall-cmd --reload第四步看日志找原因。实在找不到去服务器上翻日志这是最靠谱的办法tail -f /var/log/secure这个命令会实时输出 SSH 的登录日志你在客户端重试一次连接日志里会告诉你到底是密码错、权限错、还是被拒绝。/var/log/secure是 CentOS/RHEL 系的认证日志Ubuntu 系对应的是/var/log/auth.log这一点很多人不知道跑去翻 messages 找了半天。7. 常见问题速查与踩坑记录这一节把我这些年遇到的高频问题和坑整理成表遇到问题先来这儿对一眼。7.1 网络类问题速查现象可能原因解决办法ip addr只有 loONBOOTno网卡未启用改 ONBOOTyes 并重启 network改完配置重启网络报错网卡名写错 / 有多余字符检查 DEVICE 和实际网卡名是否一致能 ping 网关不能 ping 外网网关地址错 / DEFROUTEno检查 GATEWAY 是否为 NAT 网关能 ping IP不能 ping 域名DNS 未配置检查 resolv.conf 和 DNS1IP 突然变了还是 DHCP 模式确认 BOOTPROTOstatic重启网络服务报 Device not managedNetworkManager 接管停用 NetworkManager 或用 nmcli开机报 Device does not seem to be present配置文件名和网卡名不匹配重命名 ifcfg 文件克隆后网络不通MAC 和 UUID 重复删掉配置文件里的 UUID 和 HWADDR 行最后那条关于克隆的坑值得单独说一句。你用 VMware 的克隆功能复制出一台虚拟机两台机器拿到的 MAC 地址如果不重新生成会冲突导致网络异常。解决办法是克隆时选创建完整克隆并在虚拟机设置里点生成新的 MAC 地址然后在虚拟机里把ifcfg-ens33中的UUID行删掉或重新生成再重启网络。这个坑在搭集群的时候一定会遇到最好提前知道。7.2 安装与系统类问题速查现象原因处理开机进不去安装界面ISO 未挂载或未勾选启动时连接检查虚拟机 CD/DVD 设置提示 This host supports Intel VT-x, but...虚拟化技术在 BIOS 里被禁用进 BIOS 打开虚拟化支持装完重启又进安装界面启动顺序还是光驱优先取消 CD/DVD 启动时连接只有命令行没有桌面装成了最小化装 GNOME 或重装时间不对虚拟机挂起导致时间漂移启用 chronyd 或重装 VMware Tools屏幕分辨率只有 800x600没装 VMware Tools装 open-vm-toolsVMware Tools 这块补充一下CentOS 7 的源里已经有open-vm-tools开源版本比挂载 VMware 自带 ISO 再编译安装省事得多。桌面环境建议装open-vm-tools-desktop装完重启能支持分辨率自适应、宿主机和虚拟机之间拖拽文件、剪贴板共享yum install -y open-vm-tools open-vm-tools-desktop systemctl enable --now vmtoolsd7.3 快照、性能与日常维护的几点心得几个我踩过之后改不掉的习惯分享给你快照不是越多越好。VMware 的快照是增量存储的也就是每次快照都记录相对上一个快照的变化。快照链拉长之后磁盘 IO 会明显变慢而且占用空间会超出你的预期。我的做法是只保留 1–2 个关键快照在干净的基线和装好某个大组件之后这两个点其他的实验完就删掉。虚拟磁盘只会胖不会瘦。你在虚拟机里删了 10 GB 文件宿主机的虚拟磁盘文件还是那么大。想要回收空间可以在虚拟机里用dd把剩余空间写成 0再关机用 VMware 的压缩功能或者在虚拟机设置里点磁盘 → 压缩。不过要提醒一句这个操作对 SSD 有写入损耗别天天搞。挂起Suspend不等于关机。很多人习惯挂起虚拟机下次秒开。但挂起状态下虚拟机的时钟是停的恢复后时间会偏某些依赖时间的服务比如证书校验、定时任务会出问题。要长期不用就正常关机。资源分配别一次性给满。我见过有人把宿主机 16 GB 内存分 12 GB 给虚拟机结果宿主机自己卡到鼠标都飘虚拟机也没快多少。宿主机的流畅度是你的操作基础永远优先保证宿主机跑得顺。虚拟机的内存分配在你真正需要之前给一半以下就行。8. 后续可以怎么扩展这套环境这套环境配好之后其实可以派生出一堆练手场景不用每次都从头装。这是我实际用下来最有价值的几种扩展方向。做一份基线镜像。把干净系统配好网络、换好源、装好常用工具、打好快照然后把这个虚拟机目录整体复制一份留作模板。以后要做任何实验克隆这个模板五分钟就能开工。这比每次从头装省下的时间按年算非常可观。多网卡模拟内外网。给虚拟机加第二块网卡一块走 NAT对外一块走仅主机对内就模拟出了一台双网卡服务器的结构。这是学习路由、iptables、Nginx 反向代理最经济的实验室比用云服务器便宜太多而且可以随便折腾。组一个小集群。用克隆的方式做出三台机器分别设成 192.168.10.101、102、103配上主机名和 hosts 解析就能练数据库主从、Redis 集群、容器编排这些需要多节点的场景。这里的关键是主机名和 hosts 一定要提前配好集群软件对名称解析的依赖非常重前期偷懒后期会付出几倍的调试时间。固定住你的网络参数。这三个值建议写进自己的笔记里VMnet8 子网 192.168.10.0/24、网关 192.168.10.2、静态 IP 从 100 开始往上排。养成习惯之后你所有实验环境的地址规划都是统一的看一眼 IP 就知道是哪台机器长期看效率提升很明显。最后分享一个我一直在用的小技巧把常用的网络排查命令写成一个netcheck.sh脚本放在/usr/local/bin下内容就是把 IP、路由、DNS、三个 ping、sshd 状态按顺序跑一遍。遇到网络问题时敲一个netcheck.sh几秒钟就能定位到是哪一层出的问题比一条条手敲快得多而且不会漏步骤。这套排查顺序其实就是第 5.5 节表格里那个顺序你把它固化成脚本以后无论换到哪台机器、哪个发行版思路都是通的。