VMware虚拟机网络配置详解:三种模式、固定IP与端口转发

发布时间:2026/9/20 10:15:21
VMware虚拟机网络配置详解:三种模式、固定IP与端口转发 从 VMware Workstation 里装好系统、准备干活结果发现网络不通这种问题我见过太多次了。绝大多数时候不是虚拟机坏了也不是物理机网卡有问题而是 VMware 虚拟机的网络设置没搞明白。今天这篇就专门把 VMware 网络这块掰开揉碎讲清楚包含三种基本网络模式的区别、固定 IP 的操作方法、端口转发怎么做、常见报错怎么排查尽量做到你看完不需要再翻第二篇教程。这篇文章适合刚接触 VMware 的新手也适合已经用过一段时间但网络配置经常出问题的老用户。我会按“先懂原理、再上手操作、最后排错”的顺序来讲前面理解了后面操作起来基本就是顺水推舟的事。1. 先把 VMware 网络模式看懂三种模式到底选哪个VMware Workstation 安装完以后会在你的物理机上创建出两块虚拟网卡名字通常是 VMnet1 和 VMnet8。再加上默认的 VMnet0这三个虚拟网络恰好对应了虚拟机的三种网络模式桥接模式、NAT 模式和仅主机模式。新手最容易犯的错就是一上来直接问“我该选哪个”然后照着网上某个教程乱选一个。其实选哪种模式完全取决于你的使用场景先搞清楚每种模式背后做了什么你就不需要再死记硬背“场景选型表”了。1.1 桥接模式让虚拟机像一台独立电脑桥接模式在 VMware 里面对应的是 VMnet0它的原理是把虚拟机的虚拟网卡直接“桥接”到你物理机的物理网卡上。也就是说虚拟机发出的网络数据包会像普通电脑一样直接走进你所在的物理局域网。打个比方你的物理机接入了家里的路由器那桥接模式下的虚拟机就相当于在这个路由器下面又插了一台设备。它会自己向路由器申请 IP和你的物理机平级局域网里的其他设备也能直接访问它。这种模式最大的优势就是“透明”——虚拟机在局域网里就是一台独立的机器既能上网也能被局域网其他设备访问适合做服务器测试、搭网站给别人访问这类场景。但桥接模式也有明显的坑。如果你用的是无线网卡桥接经常会出现拿不到 IP 的情况因为 VMware 需要把虚拟网卡和物理无线网卡绑定而无线网卡的桥接兼容性一般不如有线网卡。另外如果你的局域网存在 IP 地址绑定路由器只给特定 MAC 分配固定 IP那桥接模式的虚拟机可能无法正常上网。1.2 NAT 模式主机当网关虚拟机共享上网NAT 模式对应 VMnet8。这种模式下你的物理机相当于一台“路由器”虚拟机通过物理机的 IP 去访问外网外部网络只能看到物理机的 IP看不到虚拟机。NAT 模式有几个非常舒服的特点虚拟机和物理机之间可以互相访问不需要额外配置。虚拟机可以正常访问外网比如在虚拟机里下载软件、更新系统。不用管物理网络环境只要物理机能上网虚拟机基本就能上网。所以 NAT 模式是 VMware 新装虚拟机时的默认选择也是绝大多数人日常使用最推荐的模式。它的缺点是局域网里的其他设备无法直接访问你的虚拟机因为虚拟机在 NAT 网络内是一个独立网段外部设备根本看不见它。当然这个可以通过端口转发来解决我后面会专门讲。1.3 仅主机模式纯私网环境与世隔绝仅主机模式对应 VMnet1。从名字就能看出来这台虚拟机只能和物理机通信不能访问外网也不能被局域网其他设备访问。这种模式适合什么场景我个人用得比较多的是模拟隔离环境比如测试恶意程序、研究病毒行为。组一个完全封闭的虚拟内部网络让多台虚拟机之间互通但不接触外网。临时搭一个内网环境来验证某些服务避免干扰真实网络。仅主机模式相当于一台机器接了一根网线另一头直接插在物理机的虚拟网卡上。简单、安全、干净。1.4 三种模式怎么选一张表讲清楚网络模式对应虚拟网络虚拟机能否上外网物理机能否访问虚拟机局域网其他设备能否访问虚拟机典型场景桥接模式VMnet0能能能搭建对外服务、模拟独立主机NAT 模式VMnet8能能不能除非端口转发日常使用、下载更新、开发测试仅主机模式VMnet1不能能不能隔离环境、内网测试选型逻辑其实就一句话要让虚拟机像局域网里的独立电脑就选桥接只是让虚拟机能上网就选 NAT完全不让它接触外部网络就选仅主机。2. 网络模式切换与固定 IP 配置实操很多人在虚拟机里设置了静态 IP重启之后发现网络还是不通或者 IP 跟 VMware 虚拟网络不在同一个网段导致网关都 ping 不通。这一章我直接把操作步骤展开从界面入口开始一步一步走。2.1 虚拟机网络适配器的三种切换方式在 VMware Workstation 里切换网络模式有两种常用入口入口一在虚拟机详情页调整选中虚拟机 - 右键 - 设置Settings- 硬件Hardware- 网络适配器Network Adapter。在这里你会看到“桥接模式”“NAT 模式”“仅主机模式”“自定义”这几个选项直接选中目标模式点确定即可。入口二在虚拟机运行状态下调整虚拟机开着的时候也可以在底部状态栏找到网络适配器的图标双击即可打开设置窗口。注意修改网络模式会触发虚拟机内网卡重新连接如果虚拟机系统比较敏感建议先关掉正在使用的网络服务。提示每次切换网络模式后虚拟机内部的网卡会重新触发 DHCP 请求。如果发现切换后 IP 没变或者网络不通可以尝试在虚拟机里禁用网卡再启用或者重启虚拟机。2.2 NAT 模式下手动设置固定 IP带计算过程NAT 模式下VMware 的默认网段通常分配在 192.168.x.0/24具体是多少取决于你安装 VMware 时的随机分配常见的是 192.168.10.0、192.168.20.0、192.168.66.0 等。你需要在物理机上打开“虚拟网络编辑器”查看实际网段。打开方式VMware 菜单栏 - 编辑Edit- 虚拟网络编辑器Virtual Network Editor会看到一个列表里面列着 VMnet8 的信息包括它的子网 IP 和子网掩码。比如我看到 VMnet8 的子网是 192.168.66.0子网掩码是 255.255.255.0那我的虚拟机静态 IP 就应该设置在 192.168.66.2 到 192.168.66.254 这个范围内.1 通常是 VMware 的虚拟网关。以 Ubuntu 系统为例手动配置静态 IP 的步骤打开终端编辑网络配置文件sudo vim /etc/netplan/01-netcfg.yaml写入以下内容注意修改网卡名称可以用 ip a 命令确认一般是 ens33 或 eth0network: version: 2 ethernets: ens33: dhcp4: false addresses: - 192.168.66.100/24 routes: - to: default via: 192.168.66.2 nameservers: addresses: - 223.5.5.5 - 8.8.8.8应用配置sudo netplan apply这里的 192.168.66.100 是我自己分配的地址避开 DHCP 自动分配区间即可网关 192.168.66.2 是 VMware NAT 模式的默认网关一般就是 VMnet8 子网中 .2 那个地址DNS 我用了国内的 223.5.5.5 搭配 8.8.8.8后者作为备用。Windows 虚拟机设置固定 IP 就相对简单了直接在“网络连接”里打开 IPv4 属性把 IP、网关、DNS 填上即可。网关同样是虚拟网络编辑器里看到的那个 .2 地址。2.3 桥接模式下的 IP 设置与无线网卡选择桥接模式下虚拟机的 IP 要跟你物理机保持同一个网段网关指向物理网络的路由器即可。比如物理机 IP 是 192.168.1.10网关是 192.168.1.1那虚拟机就可以设置成 192.168.1.100网关 192.168.1.1。在“虚拟网络编辑器”里你还需要确认桥接模式绑定的物理网卡是否正确。点击 VMnet0然后在右侧“桥接到”下拉框中选择你的物理网卡。这里我要特别提醒如果你用的是无线网卡上网桥接模式有时候会默认选择一个不适用的物理网卡造成虚拟机无法获取 IP。这时候手动把“桥接到”改成你的无线网卡名称比如 WLAN 或 Wi-Fi 对应的设备名称。实操心得桥接模式 无线网卡我实际测试过很多次出现“能 ping 同网段 IP 但上不了外网”的概率比较高。如果你是无线网络环境又急着用优先考虑 NAT。桥接模式确实更灵活但无线环境下的兼容性实在不敢恭维。2.4 固定 IP 为什么重要虚拟机默认使用 DHCP 自动获取 IP这意味着每次重启虚拟机或者 VMware 的 DHCP 服务重新分配IP 都可能变化。如果你在虚拟机里跑着开发环境、数据库、或者搭建了个测试网站第二天打开电脑发现 IP 变了所有连接配置都得跟着改非常折腾。所以我个人的习惯是装完系统第一件事先把固定 IP 配好。不管是 NAT 还是桥接固定 IP 都能让你省掉后面一大堆麻烦。3. 让外部设备访问虚拟机里的服务端口转发与自定义网络NAT 模式下虚拟机对外部网络是“隐身”的。如果你在虚拟机里跑了个 Web 服务或开发环境想让局域网里其他电脑访问那就得做端口转发。这一节我把操作步骤和一个高级技巧自定义虚拟网络一起说明白。3.1 NAT 模式端口转发配置步骤我的实际场景是这样的虚拟机里跑了一个 Nginx 服务监听 80 端口宿主机和虚拟机之间能互相访问但同一局域网里的另一台电脑无法访问它。这时候就需要在 VMware 的 NAT 网络里做一个端口映射把宿主机某个端口“转发”到虚拟机的某个端口。步骤打开“虚拟网络编辑器”选中 VMnet8NAT 模式对应的虚拟网络。点击“NAT 设置”按钮打开 NAT 设置窗口。在端口转发区域点击“添加”。填写主机端口、类型TCP 或 UDP、虚拟机 IP 地址、虚拟机端口然后确定。比如我想让局域网设备通过访问宿主机 8080 端口来访问虚拟机里的 80 端口服务就在“主机端口”填 8080“虚拟机 IP 地址”填 192.168.66.100“虚拟机端口”填 80类型选 TCP。完成之后局域网的其他电脑就可以通过访问“宿主机 IP:8080”来访问虚拟机里的 Web 服务了。这里有个容易忽略的点宿主机自己访问“localhost:8080”不一定生效因为回环地址走的是本地回环而非虚拟网卡建议直接用宿主机的局域网 IP 测试。注意端口转发添加后VMware 的 NAT 服务是立即生效的不需要重启。如果转发不生效先确认宿主机防火墙是否放行了对应端口再确认虚拟机内的服务确实监听在你填写的虚拟机端口上。3.2 自定义虚拟网络多虚拟机隔离组网“自定义”模式是 VMware 被很多人忽略的一个功能。它允许你把虚拟机挂载到某个指定的 VMnet 网络上方便搭出更复杂的网络拓扑。举个例子我有两台虚拟机一台做数据库数据库服务器一台做应用应用服务器。我想让它们两台之间可以互相通信但都不希望暴露到宿主机所在的现实局域网中。我就单独创建一个虚拟网络比如用 VMnet3然后给这两台虚拟机各加一块网卡分别指到“自定义”里的 VMnet3。具体操作在“虚拟网络编辑器”里点击“添加网络”选择 VMnet3类型选“仅主机模式”会自动生成一个私有网段。进入虚拟机的“设置” - “网络适配器”将网络连接方式改为“自定义特定虚拟网络”下拉选择 VMnet3。给每台虚拟机配一个 VMnet3 网段的静态 IP。这样两台虚拟机就在一个隔离的内部网络里互访而且不会影响主网络的正常通信。如果你在虚拟机里做的实验有较强“破坏性”自定义网络能有效把影响范围控制住。3.3 多网卡混合配置的思路还有一种场景是虚拟机既需要访问外网又被要求只能通过某个固定入口访问那么就可以给一台虚拟机配两块虚拟网卡网卡一NAT 模式负责上外网比如更新软件包、下载依赖。网卡二仅主机模式或自定义网络负责被宿主机/其他虚拟机访问。配置两块网卡要注意网卡命名容易搞混。在 Ubuntu 里一般第一块是 ens33第二块是 ens36或者 ens37如果是 Windows 虚拟机则分别显示为“以太网”和“以太网 2”。配置时看清楚各网卡对应哪个模式建议在虚拟机里把网卡改名比如“External”和“Internal”能省不少事。4. 常见问题与排查技巧实录这一部分我重点写实际使用中高频出现的问题。很多问题看起来五花八门折腾半天发现原因就那几条。我把它们整理成速查表 详细说明你遇到类似情况直接对号入座。4.1 虚拟机没有网络适配器先查这三个地方你打开虚拟机发现系统里根本没有网卡ip a 只显示 lo或者网络设置里显示“设备未连接”。按下面顺序排查检查 VMware 设备连接状态右键虚拟机 - 设置 - 网络适配器确认右上角“已连接”和“启动时连接”两个勾选框都打上了。检查虚拟机系统里是否禁用了网卡Linux 下执行sudo ip link set ens33 upWindows 下到“网络连接”里看网卡是否被禁用。重装 VMware ToolsVMware Tools 里面包含了虚拟网卡的驱动。如果系统异常或驱动丢失重装 VMware Tools 可以解决大部分网卡消失的问题。4.2 VMnet1 或 VMnet8 适配器有感叹号怎么办物理机上打开“网络连接”看到 VMnet1 或 VMnet8 前面有个黄色感叹号这是 Windows 检测到这些虚拟网卡“无 Internet 访问权限”或者“未识别网络”导致的。其实这两个虚拟网卡本来就是私有网络地址没有 Internet 访问权限是正常现象。但有些人会觉得不放心而且有些场景下确实会导致虚拟机网络异常。解决思路把感叹号的网卡属性打开双击“Internet 协议版本 4 (TCP/IPv4)”手动填一个 IP比如 VMnet8 对应网段 192.168.66.0/24网卡 IP 填 192.168.66.1、子网掩码 255.255.255.0具体看虚拟网络编辑器里的子网网段。这一步是让虚拟网卡和 VMware 的虚拟网络在同一个网段网络更容易通。验证 VMware DHCP 服务是否在运行。按 WinR 输入 services.msc找到“VMware DHCP Service”和“VMware NAT Service”确保这两个服务是启动状态且启动类型是“自动”。实操心得我曾经遇到 VMnet8 感叹号导致虚拟机完全无法上网的情况服务重启也没用最后是在“设备管理器”里先卸载掉 VMnet8 虚拟网卡然后去 VMware 的“虚拟网络编辑器”里点“还原默认设置”让 VMware 重新生成虚拟网卡才解决。这个方法能不用则不用因为“还原默认设置”会把你自己自定义的虚拟网络清掉但实在没招的时候确实管用。4.3 虚拟机能 ping 通网关但上不了外网这个问题出现频率极高。虚拟机可以 ping 通 192.168.66.2NAT 网关但 ping 不通 8.8.8.8 或 223.5.5.5。这种情况八成是 DNS 问题或 NAT 服务故障。排查步骤先检查 DNS 配置是否正确在虚拟机里cat /etc/resolv.conf看 nameserver 是否填了能用的 DNS。如果为空或格式错误手动加上nameserver 223.5.5.5。检查 VMware NAT Service 是否正常运行Windows 服务管理器里确认“VMware NAT Service”状态是“正在运行”。如果停止右键启动。尝试用 IP 直接访问外网测试在虚拟机里执行curl http://223.5.5.5如果走 IP 能通但走域名不通那基本就是 DNS 问题。如果是新装的虚拟机系统检查系统时间是否正确。系统时间偏差过大会导致 HTTPS 证书校验失败看起来像断网其实是证书信任不了。4.4 宿主机能访问虚拟机但局域网其他设备访问不了这个要分两种情况如果虚拟机用的是 NAT 模式那其他设备访问不了是正常的。解决办法就是做端口转发我上面已经写了完整步骤。如果虚拟机用的是桥接模式但其他设备仍然访问不了重点排查防火墙虚拟机的系统防火墙默认会拦截外部设备发起的连接。Ubuntu 下可以临时关闭测试sudo ufw disableWindows 虚拟机则到“Windows Defender 防火墙”里放行对应端口。不过关防火墙只是用来定位问题定位到之后建议加白名单规则而不是一直裸奔。IP 是否能被外部设备路由到确认虚拟机的 IP 跟外部设备确实在同一网段子网掩码一致。物理路由器是否开启了 AP 隔离有些路由器开启了“AP 隔离”功能导致无线设备之间无法互访。这个在桥接模式 无线网络环境下尤为重要。4.5 克隆虚拟机之后网卡起不来用 VMware 的“克隆”功能复制一台虚拟机出来后经常出现网络无法启动的情况。原因是克隆出的虚拟机会生成一个新的 MAC 地址但虚拟机系统内部还保存着原网卡的 MAC 和网络配置导致网卡无法正常初始化。解决办法以 CentOS/RHEL 系为例克隆后进入系统如果不能进图形界面就进救援模式或单用户模式把网络配置里的旧 MAC 地址信息删除同时删除 udev 的网卡规则rm -f /etc/udev/rules.d/70-persistent-net.rules然后编辑网卡配置文件比如/etc/sysconfig/network-scripts/ifcfg-ens33检查里面的HWADDR是否还保留旧值有的话直接删掉这行最后重启网络服务或直接重启系统。Ubuntu 系相对简单因为 netplan 配置默认不绑定 MAC 地址克隆后一般能直接起来。如果起不来检查/etc/netplan/下配置文件里的网卡名是否匹配。4.6 端口转发不生效的几个隐蔽原因端口转发配置明明看着没问题但外部设备访问宿主机 IP 加端口就是不通。我踩过几回坑总结下来常见原因主机端口被占用在宿主机执行netstat -ano | findstr 端口号检查一下被占用就换个端口。虚拟机防火墙拦截即使虚拟机内部服务正常运行虚拟机系统的防火墙也可能拦截外部数据包。先临时关闭虚拟机防火墙测试通了再加规则。NAT 服务缓存修改了端口转发规则后偶尔需要重启一下“VMware NAT Service”才能生效。我就是遇到过一次这个情况重启服务后一切正常。使用的是物理机回环地址测试在宿主机上用 localhost 或 127.0.0.1 测试端口转发不一定准确要用宿主机的局域网 IP 或者从另一台设备上测试。4.7 镜像源连接失败的典型处理思路有时候你在虚拟机里跑开发环境比如 IDE 或包管理工具需要拉取远程仓库的内容报错提示连接被拒绝比如无法连接某个镜像地址。这个问题很容易被误判为 VMware 网络配置有问题其实通常是 DNS、代理配置或者镜像源本身不可达导致的。我当时遇到类似报错时第一步先在虚拟机里执行curl -I https://mirrors.aliyun.com/如果返回 HTTP 响应头说明网络链路没问题如果卡住或报连接拒绝说明目标镜像地址不可达或者是虚拟机系统里残留了不合适的代理设置。检查一下环境变量env | grep -i proxy把代理变量清掉再重试。如果没有代理变量但依然连不上换个公共镜像源地址试试。这类问题跟 VMware 的网络模式关系不大NAT 模式能上网的情况下重点就往镜像地址和系统代理设置上排查。一些最后想说的话写了这么多核心就一句VMware 虚拟机网络设置没有想象中那么神秘先把三种模式的特点吃透再动手配置很多问题在源头就能避开。我个人在实际操作中的体会是大部分“网络不通”问题都是模式选错、IP 不在同网段、防火墙拦截这三件事造成的八成以上能靠这三板斧解决。还有一个很实用的小技巧不管你在虚拟机里做什么网络实验建议先把 VMware 的“虚拟网络编辑器”截图保存一下。等到哪天网络出问题看一眼截图就能确认自己的虚拟网段和网关不至于瞎猜。希望这篇文章能让你少走弯路遇到具体问题也欢迎带着截图和报错信息来回看排查思路。