
网上聊 Linux 的内容铺天盖地但真正上手时多数人的第一道坎根本不在命令本身而是卡在环境上虚拟机里那台 Linux 怎么连不上网为什么宿主机访问不到虚拟机刚配好的静态 IP 重启就失联我自己刚开始折腾 Linux 那阵子就为这些问题熬过好几个晚上后来总算把 VMware 的三种网络模式、网卡配置、网关 DNS 这几个环节彻底理清了才总算不再被网络折腾。这篇文章就围绕“Linux 介绍及虚拟机网络配置”这个最刚需的场景展开先聊聊为什么建议用虚拟机跑 Linux、发行版到底怎么选再把 VMware 里的 NAT、桥接、仅主机三种模式讲透接着从零开始配一台 Ubuntu 虚拟机一步步做到能从宿主机 SSH 进去、能正常访问外网。最后附上我实际踩过的坑和排查套路。适合两类人一是准备学 Linux 但还没搭过环境的入门者二是平时要在虚拟机里搭服务、做测试的开发者。看完这篇至少能让你少走几星期弯路。1. 为什么用虚拟机跑 Linux而不是直接装物理机1.1 虚拟机带来的最大好处随便折腾很多人学 Linux 的第一反应是找台旧电脑直接装或者给自己日常用的电脑搞个双系统。我最初就这么干过结果要么是引导坏了只能重装 Windows要么是 U 盘写崩了反复烧镜像总之正事没干多少时间全浪费在折腾环境上。虚拟机解决的核心痛点就是——你可以随便折腾。装好系统以后拍一个快照后面不管是你把服务配置文件写错了还是把系统搞到开机都进不去直接恢复到快照就完事不需要重新安装系统。虚拟机内部跑什么命令、改什么内核参数、启动什么服务都跟宿主机完全隔离炸了也只是虚拟硬盘文件上一个状态点不会影响物理机上的文件和数据。另外一个很实在的好处是可以在同一台宿主机上同时跑多套 Linux。我今天拿 Ubuntu 写代码明天开 Rocky Linux 测运维脚本后天再拉一台 Debian 做缓存服务器实验这些都只是同时开着几个窗口而已。比起在物理机上频繁重装系统省下的时间不可估量。1.2 虚拟化平台怎么选VMware、VirtualBox 还是 Hyper-V平台选型我直接给结论个人学习和做实验优先用 VMware Workstation Pro。这个软件从 2024 年年中开始对个人用户免费功能完整度在桌面虚拟化里算第一梯队尤其是它的虚拟网络编辑器可以可视化地改子网、看网关、配端口转发对网络配置的学习特别友好。VirtualBox 也不是不能用它开源免费、跨平台装个轻量虚拟机跑跑测试完全能胜任。但它的网络设置入口藏得比较深默认的 NAT 模式做端口转发时要手动敲一串命令对新手不太直观。如果你只是在别的机器上临时跑个虚拟机或者公司电脑不方便装商业软件VirtualBox 是不错的备选。Windows 自带的 Hyper-V 也可以创建虚拟机但它和 VMware 之间存在虚拟化组件冲突容易导致虚拟机启动变慢甚至报错。如果要用 VMware建议在“启用或关闭 Windows 功能”里把 Hyper-V 相关组件关掉否则可能出现“无法启用虚拟机平台”之类的情况。这里多说一句Hyper-V 的虚拟交换机配置逻辑跟 VMware 完全不同等入门以后再去接触也不迟。1.3 Linux 发行版怎么选看清楚场景再下手先补一个基础概念Linux 本身是内核不是一套完整操作系统。你在虚拟机里装的那些 Ubuntu、Debian、Rocky是基于 Linux 内核外加各种系统工具、包管理器、桌面环境组合出来的“发行版”。不同发行版就像同一颗引擎装在不同车架上各有各的性格。我给学习者的建议是纯入门用 Ubuntu教程最多、资料最全、遇到问题搜一下就有答案往运维方向走Ubuntu Server 和 Rocky Linux 都要会因为企业环境里这两个占比非常高如果只是想跑个稳定的服务Debian 是省心之选至于 Kali它是面向安全测试的发行版不适合当日常办公和学习的系统来用。发行版之间还能互相借鉴比如你在 Ubuntu 上学会了 apt 和 netplan再到 Rocky 上会发现命令换成了 yum/dnf 和 nmcli但底层网络逻辑是完全相通的。这也是这篇文章想帮你打底的原因——网络配置的核心思想换哪个发行版都不变。2. 虚拟机网络模式不搞懂原理后面全白搭2.1 三种模式的本质区别NAT、桥接、仅主机VMware 的三种网络模式本质上决定了虚拟机和外部世界处于怎样的拓扑关系。我习惯把它们类比成三种住房形态。NAT 模式相当于虚拟机住在一个小区里所有虚拟机共享一个出口通过虚拟路由器VMware 里叫 VMnet8做地址转换再由宿主机物理网卡真正上网。从外面看多台虚拟机都像宿主机自己在发起网络请求外部设备无法直接访问虚拟机内部。这个模式最大的优点是省心宿主机能上网虚拟机就能上网不会受办公网络准入、IP 限制等外部因素影响。桥接模式则是让虚拟机直接加入宿主机所在的物理局域网相当于给虚拟机也插了一根网线到同一台交换机上。这时候虚拟机拥有和宿主机同一网段的独立 IP局域网内其他设备可以直接访问它。代价是它完全暴露在局域网里能不能拿到地址、网络是否稳定取决于你所在物理网络环境是否允许。仅主机模式就是虚拟机与宿主机组成一个封闭的小局域网VMnet1里面没有出口虚拟机不能访问外网宿主机和虚拟机之间可以互相访问。它适合做隔离类实验比如测试防火墙规则、模拟一个完全可控的内网环境。2.2 模式选错会有什么后果我实际见到最多的低级错误就是上来就选桥接模式结果虚拟机死活拿不到 IP。原因往往很简单公司或学校网络有 MAC 地址准入或者 DHCP 服务不对陌生设备发放地址再或者网线插口本身就没通。这种情况下桥接就是自讨苦吃果断换回 NAT 就正常了。反过来如果你需要让局域网里的其他电脑能访问虚拟机里的 Web 服务或者数据库一直用 NAT 就会很麻烦。你要去配置端口转发让外部请求映射到虚拟机内的某端口操作不复杂但绕了一圈。这种场景直接换成桥接模式让虚拟机拿到一个局域网的独立 IP别人就能直接用这个 IP 访问服务。仅主机模式最大的限制是没外网。新手如果不懂原理在里面装个软件发现下载不了还以为软件源坏了其实压根没出口。所以日常学习还是以 NAT 为主仅主机留给特定的隔离实验就好。2.3 网络配置里三个绕不开的角色IP、网关、DNS不管哪种模式只要涉及 Linux 网络配置永远跑不掉这三个参数。IP 地址相当于门牌号别人靠它找到你这台机器。网关相当于小区大门你想到小区外去必须先把数据交给门卫。DNS 相当于电话簿你把域名给它它告诉你对应服务器的 IP 地址。三者的配置逻辑就是先确认自己的门牌号在哪个小区里IP 和子网掩码再找到小区大门网关最后拿到电话簿DNS。纯自学时配置静态 IP 很有价值因为 DHCP 动态分配虽然省事但地址可能会变。你上午连上用得好好的下午重连网络发现 IP 换了之前配的 SSH 快捷方式、服务监听地址全部失效。固定一个 IP任何服务都能稳定监听在一个可预期的地址上这也是企业服务器最基本的配置习惯。3. 实操从创建虚拟机到配通静态 IP 并 SSH 连接3.1 新建虚拟机时的关键参数先把基础参数定好。在 VMware Workstation 里点击“创建新的虚拟机”选择“自定义”模式。CPU 建议给 2 核内存至少 4GB如果这台虚拟机还要跑图形界面建议 8GB。磁盘先给 30GB 虚拟磁盘就够用了默认按需分配不会立刻占满宿主机空间。网络适配器这一步直接选 NAT 模式。这也是我要专门写这篇文章的原因——很多人路径不熟在这个界面就随手点了“桥接模式”后面所有问题都是从这开始的。镜像方面如果面向新手我建议装带桌面的 Ubuntu 桌面版图形界面里配网络更直观但如果你想真正学会运维套路直接上 Ubuntu Server 版整个安装过程只需要几分钟装完就是一个纯命令行环境所有网络配置都是自己动手操作更能练出真功夫。3.2 虚拟网络编辑器先确认前缀和网关安装完系统进入系统后先别急着敲命令把 VMware 的虚拟网络编辑器打开确认一下实际参数。路径是菜单栏“编辑 - 虚拟网络编辑器”右下角“更改设置”拿到管理员权限后选中 VMnet8 那一行。你会看到类似“NAT 模式”字样和子网 IP比如 192.168.192.0/24。点一下“NAT 设置”能看到这台虚拟路由器的网关 IP 通常是 192.168.192.2部分版本也可能显示为 192.168.192.1。别背死参数以你机器上显示的实际值为准下面配置时每一步都要用这个真实网关。把子网前缀记下来比如 /24意思是网关和虚拟机都必须在 192.168.192.0 到 192.168.192.255 这个范围内后面给虚拟机分配 IP 时不要跳出这个范围。3.3 Ubuntu 里用 netplan 配置静态 IPUbuntu 18.04 之后的新版本网络配置统一走 netplan配置文件是 YAML 格式通常位于 /etc/netplan/ 目录下。先登录系统执行 ip a 查看当前网卡名VMware 虚拟机里一般是 ens33版本不同也可能是 ens160。然后编辑配置文件。注意YAML 格式对缩进极其敏感绝对不能出现 Tab只能用空格而且层级缩进必须一致。sudo vim /etc/netplan/01-netplan-config.yaml把内容改成下面这样注意把网卡名、IP、网关替换成你自己的实际值network: version: 2 ethernets: ens33: dhcp4: no addresses: - 192.168.192.130/24 routes: - to: default via: 192.168.192.2 nameservers: addresses: [192.168.192.2, 223.5.5.5]解释下每项含义。dhcp4: no 表示关闭 IPv4 动态分配addresses 列表里填你想给这台虚拟机固定的 IP一定要落在前面确认过的子网范围内routes 里的 via 是网关nameservers 中第一个解析服务器填网关即可第二个 223.5.5.5 是国内公共 DNS顺手防一手网关上的 DNS 解析抽风。保存退出后执行sudo netplan apply如果没报错再用 ip addr 查看网卡地址是否变成了你指定的静态 IP。万一配置写错导致网络断了回到 VMware 虚拟机控制台重新执行 netplan apply或者改回 dhcp4: yes 先恢复网络再慢慢调整。3.4 Rocky Linux / RHEL 系怎么配nmcli 一行搞定在企业运维场景里Rocky Linux、AlmaLinux、CentOS 这类 RHEL 系发行版出现频率非常高。它们的网络管理默认由 NetworkManager 负责推荐用它自带的命令行工具 nmcli 配置比手改配置文件更不容易出错。先查看当前连接名不同版本可能叫 ens160 也可能叫 System ens160nmcli connection show然后执行修改注意把连接名、IP、网关换成实际值nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.192.131/24 ipv4.gateway 192.168.192.2 ipv4.dns 192.168.192.2 223.5.5.5这条命令同时设定了静态 IP、网关和 DNS执行完再激活连接nmcli connection up ens160验证方式和 Ubuntu 一样ip addr 看地址ip route 看路由。如果你遇到连接名带空格修改时记得给连接名加引号比如 nmcli connection modify System ens160 ... 这种小细节经常坑到人。3.5 验证连通性从网关到外网再到 SSH网络配好后别急着高兴按顺序做一遍完整验证任何一个环节断了都能快速定位。先在虚拟机里 ping 网关比如ping -c 4 192.168.192.2能通说明二层三层链路正常。如果这里不通大概率是 IP 子网和网关不匹配回去检查 netplan 或 nmcli 配置。然后再 ping 外网 IPping -c 4 223.5.5.5能通说明 NAT 出口没问题。接着做 DNS 解析测试nslookup www.ubuntu.com能返回 IP 说明 DNS 正常。最后在宿主机上打开终端尝试 SSH 登录虚拟机ssh 你的用户名192.168.192.130如果提示连接超时先看看虚拟机上有没有安装 sshdUbuntu Server 安装时没选 OpenSSH 的话需要先执行 sudo apt install openssh-server再把 ssh 服务启动起来。另外宿主机端防火墙也可能拦 22 端口Windows 防火墙第一次放行 SSH 连接时注意弹窗里要选择允许。4. 常见问题排查别急着重装系统按层来找4.1 一套可靠的排查思路从物理链路逐层向上遇到虚拟机网络出问题最忌讳的是毫无章法地乱试一通。我的习惯是沿着网络分层一层一层往上看每层都有对应的确认命令这一层确认没问题了再往上一层查。第一步看 VMware 服务是否正常。在 Windows 服务管理里找到 VMware NAT Service 和 VMware DHCP Service确保这两个服务处于运行状态。它们一旦停止NAT 模式下的虚拟机几乎必然没网。第二步看虚拟机里的网卡本身是否起来。执行 ip link show如果网卡状态不是 UP 而是 DOWN说明网卡被禁用了用 ip link set 网卡名 up 拉起它。第三步看三层配置。ip addr 看 IP 是否配好ip route 看默认路由是否指向正确网关。如果这里没问题但 ping 网关不通再用 tcpdump 或抓包工具看看有没有响应用排除法缩小范围。第四步才是 DNS 和应用层。resolvectl status 查看实际生效的 DNSsystemctl status ssh 查看 SSH 服务状态ss -tlnp | grep 22 确认端口正在监听。4.2 一张速查表覆盖最常见的故障故障现象可能原因处理办法虚拟机 ping 不通网关IP 子网或网关配置错误打开虚拟网络编辑器核对 VMnet8 子网与网关修正 netplan/nmcli 配置能 ping 通网关但上网失败NAT 服务停止或宿主机本身没外网在 Windows 服务中启动 VMware NAT Service确认宿主机能正常上网域名解析失败但 IP 能通DNS 配置错误或 resolv.conf 被覆盖给 nameservers 添加公共 DNS 如 223.5.5.5再执行 netplan apply宿主机 SSH 连不上虚拟机没有安装 sshd 或防火墙拦截 22 端口安装并启动 openssh-server关闭或放行 ufw 中的 22 端口克隆虚拟机后无法上网旧网卡绑定 MAC 或连接名残留删除旧连接重命名配置nmcli connection delete 旧连接后重新激活桥接模式下拿不到 IP物理网络有准入限制或 MAC 绑定换回 NAT 模式或用桥接时在虚拟网络编辑器里选择正确的物理网卡开启虚拟机后黑屏无法进入桌面3D 加速、内存不足或与 Hyper-V 冲突关闭 3D 加速加大虚拟机内存关闭 Windows 的 Hyper-V 相关组件Windows 提示无法启用虚拟机平台BIOS 未开启 VT-x/AMD-V重启进 BIOS 开启 CPU 虚拟化选项4.3 两个特别容易踩但很少被写在文档里的坑第一个坑是“改了虚拟机网络配置后当前连接直接断了”。如果你是通过 SSH 远程操作虚拟机改 IP 又没有在一条命令里同时更新网关网络重启瞬间自己的会话就会掉线。很多新手这时候会慌以为系统坏了其实只是 IP 变了重新用新 IP 连接就行。经验做法是在 VMware 的虚拟机控制台窗口里操作网络配置这里即使断网也不会丢失操作通道远比远程 SSH 安全。第二个坑是克隆虚拟机导致的网络问题。很多人图省事直接从一台配置好的虚拟机克隆出好几台结果发现新机器的网卡名变成 ens38、ens39或者 IP 全是同一个互相冲突。原因在于克隆后网卡 MAC 地址变了但系统里的一些配置还保留着旧连接信息。在 RHEL 系里执行 nmcli connection delete 删除旧连接重新设置连接即可Ubuntu 里则检查 /etc/netplan/ 文件是否有没有针对旧 MAC 的绑定项必要时加上新的 MAC 地址对应的网卡配置。最后说一个我自己一直沿用的习惯拿到一台新虚拟机先把 IP 固定下来然后立刻把它写进宿主机和虚拟机两边的 /etc/hosts。之后你开多台虚拟机、跑集群实验大家都靠主机名互相访问完全不用记 IP。另外配置网络前先在虚拟机控制台确认好新 IP 和网关再动手改改完一条条验证别图快把几条命令一次性丢进去——这个操作习惯能帮你避免大量看似无解的网络故障。