做虚拟化实验和本地开发环境的朋友,大概率都在 VMware 或 VirtualBox 里碰过 Host-only 网络。这东西平时安安静静的,一旦出问题就非常折腾人——虚拟机之间 ping 不通、宿主机连不上 SSH、换个 WiFi 环境后整个环境直接罢工。我早期入坑时被这些问题折磨过很多次,后来才慢慢想明白,大部分怪问题的根源根本不在配置步骤,而是网段规划这一步就埋了雷。这篇文章我就围绕 Host-only 网段规划这件事,把推荐网段、冲突原因、避坑思路和实操配置一次说清楚。
这篇文章适合刚接触虚拟网络的新手,也适合被网络问题反复折腾的进阶用户。如果你正在搭建本地测试环境、做内网实验,或者需要在笔记本上跑一组固定 IP 的虚拟机,这篇文章可以直接帮你抄作业。
1. Host-only 到底解决什么问题:先把使用边界理清楚
很多人一上来就配置 Host-only,却不太清楚这个网络的本质。只有把它和另外两种常见模式放在一起对比,才能明白网段规划为什么这么重要。
1.1 三种虚拟网络模式的快速区分
虚拟化软件里的网络模式,本质上就是给虚拟机提供不同类型的虚拟网卡和虚拟交换机。VMware 和 VirtualBox 虽然界面不同,但底层逻辑高度一致,核心就三种模式:
- NAT 模式:虚拟机共享宿主机 IP 访问外网,宿主机相当于一台路由器,虚拟机之间可以互通,但外部设备无法主动访问虚拟机。
- 桥接模式:虚拟机直接接入宿主机所在的物理局域网,和局域网内其他设备平级,拥有独立 IP,可以互相访问。
- Host-only 模式:宿主机和虚拟机共同连接到一个虚拟交换机上,形成一个完全隔离的封闭网络,虚拟机之间可以互通,宿主机可以访问虚拟机,但虚拟机默认无法访问外网。
Host-only 最大的特点就是隔离。这个网络和外部物理网络是逻辑隔离的,虚拟机在里面怎么折腾都不会影响真实局域网,特别适合做安全测试、多节点集群模拟、DHCP 服务验证这类实验。
但隔离也带来了一个隐藏约束:Host-only 网络中的通信完全依靠网段地址匹配。宿主机虚拟网卡上绑定了一个 IP,虚拟机也要在同一个网段内才能互相通信。这个网段如果选得不好,就会出现各种莫名其妙的问题。
1.2 为什么最"简单"的网络反而最容易出冲突
从表面看,Host-only 只是配置一个 IP 网段,比桥接模式少了很多参数,好像没什么技术含量。但恰恰是这个看似简单的网络,踩坑概率远高于其他两种模式。
核心原因在于:宿主机上那张虚拟网卡是真实存在的网络接口,它会在操作系统的路由表里占用一条路由记录。如果这个网段和宿主机当前所在物理局域网的网段重叠,系统就会产生路由冲突。
我举个非常典型的例子。VirtualBox 安装后默认创建的 Host-only 网段是192.168.56.0/24,这本身是个冷门网段,一般不会和家用路由器冲突。但如果有人手动改成192.168.1.0/24,恰好家里的路由器也是192.168.1.1,那宿主机上就会同时存在两个相同的网段路由。此时你 ping 虚拟机的 IP,操作系统根本不知道该把数据包发到哪张网卡上,结果就是时通时不通,或者干脆全部失败。
另外,网段冲突还有另一种形式:多个虚拟网络软件抢用同一个网段。比如 VMware 的 VMnet8 默认是192.168.x.0/24(具体看 VMware 自动分配),Docker 默认网络是172.17.0.0/16,如果你在宿主机上同时装了多个虚拟化工具,它们各自创建的虚拟网卡如果没有做好规划,也容易撞车。
1.3 热词背后的真实需求:打印机、PLC 和"同一个网段"问题
搜索热词里有一类高频问题,比如"windows电脑ip和打印机ip不在一个网段""西门子mtp触摸屏和plc在一个网段",这些问题看着和 Host-only 没关系,但反映出一个共同的底层概念:二层网络通信要求双方处于同一个 IP 网段。
打印机、触摸屏、PLC 这类工业或办公设备,通常配置的是静态 IP,默认网段五花八门。电脑如果和它们不在同一个网段,就无法通过 IP 直接访问设备的管理页面或共享服务。解决办法要么改电脑 IP,要么给设备重新分配一个和电脑同网段的地址,要么通过三层路由转发。
这个原理放在 Host-only 上也是完全相通的。你在规划 Host-only 网段时,本质上就是给虚拟网络里的所有成员(宿主机虚拟网卡、各个虚拟机)统一分配一个"大家庭"的地址段。家里人的地址必须在一个段里,才能互相找到彼此。
理解了这个底层逻辑,再看后面的推荐网段和配置步骤,思路就非常清晰了。
2. 推荐网段怎么选:四个避开冲突的黄金原则
网段规划这件事,说难不难,但需要遵循几个原则。我根据多年在各类网络环境中折腾的经验,总结出四条非常实用的避坑原则。
2.1 原则一:任何情况下都要使用私有网段,绝不使用公网地址
这个原则看起来像是废话,但真的有人踩过。IP 地址分公网和私有两种,公网地址在互联网上全球唯一,私网地址专门用于局域网内部。如果你的 Host-only 网络使用了公网地址段,比如8.8.8.0/24,后果会很严重:本机访问外网时,系统路由表会认为目标地址属于本网段,数据包根本不会发到网关,直接导致无法上网。
合法的私有网段只有三个大段:
| 网段 | 范围 | 默认掩码 | 用途建议 |
|---|---|---|---|
| 10.0.0.0/8 | 10.0.0.0 - 10.255.255.255 | 255.0.0.0 | 大型私网,适合办公网络或复杂实验 |
| 172.16.0.0/12 | 172.16.0.0 - 172.31.255.255 | 255.240.0.0 | 中大型私网,云服务和 Docker 常用 |
| 192.168.0.0/16 | 192.168.0.0 - 192.168.255.255 | 255.255.0.0 | 小型私网,家用路由器和小型办公最常见 |
在规划 Host-only 时,从这三个大段里切一小段出来用是绝对合法的。但要注意避开已经被广泛使用的默认网段,这就是第二个原则。
2.2 原则二:避开所有设备厂商的默认网段
现实中有一个非常大的坑:绝大多数网络设备厂商出厂时都设定了默认管理网段。家用路由器最典型,几乎清一色是192.168.1.0/24或192.168.0.0/24。公司办公网络也常常采用10.0.0.0/24或192.168.10.0/24。
除了这些常用网段,还有很多特定厂商的默认网段也需要避开,整理如下:
| 网段 | 来源 |
|---|---|
| 192.168.1.0/24 | 绝大多数家用路由器默认网段(TP-Link、小米、华为等) |
| 192.168.0.0/24 | 部分路由器默认网段(老款网件、部分运营商光猫) |
| 192.168.31.0/24 | 小米路由器默认网段 |
| 192.168.50.0/24 | 华硕路由器默认网段 |
| 192.168.88.0/24 | MikroTik RouterOS 默认网段 |
| 172.17.0.0/16 | Docker 默认 bridge 网络网段 |
| 172.18.0.0/16 | Docker 默认 bridge 网络扩展段 |
| 198.18.0.0/15 | 部分安全软件和代理工具的默认虚拟网段 |
为什么要避开这些?因为你的笔记本每天可能要连接不同的 WiFi、有线网络、公司网络、客户现场网络。如果 Host-only 网段和当前所处网络的网段一致,系统就会产生路由冲突。就算当前网络没冲突,换个环境也可能撞上。
我在笔记上长期固定了一个习惯:只要规划网络,先列一个"避让清单",把当前环境中所有已知网段都排查一遍,再确定最终方案。
2.3 原则三:主动选择冷门网段,固定下来后长期使用
避开热门网段之后,我们需要主动选择一些冷门、相对不太会被普通设备使用的网段。这里我先给出一份实际验证过的推荐清单,可以直接抄:
| 推荐使用 | 说明 |
|---|---|
| 192.168.56.0/24 | VirtualBox 默认 Host-only 网段,成熟稳定 |
| 192.168.137.0/24 | Windows 网络共享(ICS)常用的默认网段 |
| 10.10.88.0/24 | 自定义冷门网段,日常很难与家用设备冲突 |
| 10.20.30.0/24 | 结构清晰的实验网段,便于记忆 |
| 172.16.66.0/24 | 172.16 段内选择中间位置,避开 Docker 网段 |
选择固定网段有几个小技巧。第一,选择中间偏后但不要过于边缘的地址,比如192.168.56.0这类;第二,网段的后两段尽量设计得有规律,方便记忆和排查,比如我习惯用10.10.x.0这种结构;第三,整个团队或个人的所有实验环境尽量统一使用同一个 Host-only 网段,减少认知负担。
有一点要特别注意:一旦选定网段并开始使用,就不要频繁更换。如果经常改 Host-only 网段,虚拟机里的静态 IP 配置、服务监听地址、数据库连接串、SSH 配置全都要跟着改,后期维护成本非常高。
2.4 原则四:把能想到的扩展场景都考虑进去
最后一条原则是前置思维。规划网段时不仅要看当下需要几个 IP,还要想清楚未来可能扩展到什么规模。
/24掩码代表 256 个地址,主机可用地址 254 个(去掉网络地址和广播地址)。对绝大多数实验场景来说完全够用,但如果你的实验环境需要跑几十台虚拟机、模拟大规模集群,或者要做 DHCP 地址池实验,建议规划时预留更大的空间,比如/22或/16,这样可以容纳更多的子网划分,不用在后期推倒重来。
另外还要考虑和办公网络的互联需求。如果你的实验虚拟机后续需要和公司内部服务器联调,最好提前确认公司内部网络使用的网段,避免宿主机的办公网卡和虚拟网卡产生重叠。如果公司用了10.0.0.0/8,你规划的10.10.x.0就在这个大段内部,这种情况下仅靠 IP 地址不能直接互通,还需要三层路由配合,规划时要格外谨慎。
3. 实操配置:在 VMware 和 VirtualBox 里固定一套安全网段
选好网段后,关键就是把方案落地到具体的虚拟化软件里。下面分别演示 VMware Workstation 和 VirtualBox 两个最常见的平台,操作步骤都是我自己长期使用后总结出的最稳妥流程。
3.1 VMware Workstation:从虚拟网络编辑器入手
VMware Workstation 的网络管理入口在"编辑"菜单下的"虚拟网络编辑器"。这个工具可以管理所有虚拟网络的网段、DHCP 服务和 NAT 设置。
具体操作步骤如下:
- 打开虚拟网络编辑器,界面里会列出 VMnet0(桥接)、VMnet1(Host-only)、VMnet8(NAT)等虚拟网络。
- 找到 VMnet1,确认它对应的类型是 Host-only。如果没有现成的 Host-only 网络,可以点击"添加网络",选择 VMnet1 或任意一个未使用的 VMnet 编号,类型选 Host-only。
- 选中 VMnet1,在"子网 IP"栏填写你规划的网段地址,比如
10.10.88.0,在"子网掩码"栏填写255.255.255.0。注意这里填的是网段地址,最后一位必须是 0。 - 点击"DHCP 设置",可以修改 IP 地址池范围。如果关闭 DHCP,勾选"使用本地 DHCP 服务将 IP 地址分配给虚拟机"取消掉即可。
- 点击"NAT 设置",确认 Host-only 不需要设置 NAT,因为 Host-only 默认不提供 NAT 转发。
- 点击"应用"保存,VMware 会自动在宿主机上创建对应的虚拟网卡 VMnet1,并分配一个 IP 地址。
配置完成后,建议到命令行确认一下效果。Windows 上执行ipconfig /all,找到 VMnet1 网卡,确认 IP 地址在你规划的网段内。如果电脑上装了多个虚拟化软件,这一步尤为重要,能快速发现网段是否有冲突。
需要特别提醒的是:VMware 的子网 IP 变更后,已经创建的虚拟机的网络适配器如果选择了 Host-only,它们会自动纳入新网段,但虚拟机内部的 IP 配置(静态 IP)不会自动跟着变。如果你在虚拟机里手动配置了静态 IP,需要同步修改,否则网络就不通了。
3.2 VirtualBox:全局设置里创建 Host-only 网络
VirtualBox 的 Host-only 网络管理和 VMware 有较大差异。VirtualBox 更强调"先创建网络、再把虚拟机接入"的流程。
操作步骤如下:
- 打开 VirtualBox,点击"管理"菜单 -> "工具" -> "Network Manager"(网络管理器),或者"全局设置" -> "网络"。
- 在 Host-only Networks 标签页里,点击"创建"按钮,会生成一个默认名称如
VirtualBox Host-Only Ethernet Adapter的网络。 - 双击这个网络,或者选中后点击"属性"图标,进入设置界面。
- 在"适配器"标签页,配置 IPv4 地址,填写宿主机虚拟网卡想使用的 IP 地址,比如
10.10.88.1,网络掩码填写255.255.255.0。这里的 IP 地址必须是你规划的网段里的一个具体可用地址,通常取网段最后一个可用地址或第一个可用地址,比如192.168.56.1。 - 如果需要 DHCP,在 "DHCP 服务器" 标签页勾选"启用服务器",配置服务器地址(例如
10.10.88.2),以及地址池上下限(例如10.10.88.100到10.10.88.200)。 - 保持 VirtualBox 自己的 DHCP 服务只在这个 Host-only 网络里工作,不要把地址池范围设置得太大,以免和其他服务冲突。
- 创建完成后,在虚拟机的"设置" -> "网络"里,将"连接方式"改为"仅主机网络(Host-only)",并在下方选择刚创建的 Host-only 网络。
VirtualBox 默认创建的 Host-only 网络名称通常带编号,比如 vboxnet0、vboxnet1。如果创建了多个,建议在名称上做好标识,否则虚拟机一多容易搞混。我在实际使用中习惯把实验用途写在描述里,方便后期辨识。
3.3 静态 IP 还是 DHCP:两种模式的选择场景
Host-only 网络配好后,虚拟机内部的 IP 获取方式有两种选择。很多人图省事直接用 DHCP,但长时间使用后发现并不方便。
DHCP 模式适合临时测试、快速验证的场景。VirtualBox 和 VMware 自带的 DHCP 服务会自动分配地址,虚拟机启动后直接获取 IP,无需手工配置。缺点是 IP 不固定,每次重启可能变化,如果你习惯在宿主机上用 SSH 固定连接某台虚拟机,DHCP 会带来不少麻烦。
静态 IP 模式适合搭建稳定测试环境的场景。在虚拟机系统里手动配置固定 IP,确保每次启动后地址不变。这样宿主机上的 SSH 配置、端口转发规则、数据库连接信息都可以固定下来。
我的习惯是:凡是需要长期运行的虚拟机,全部配置静态 IP;临时创建的实验虚拟机,用 DHCP 也无妨。在 Ubuntu/Debian 系统上,可以在/etc/netplan/目录下的 YAML 配置文件中配置静态 IP,在 CentOS/RHEL 系统上则在/etc/sysconfig/network-scripts/ifcfg-eth0中配置,Windows Server 则在"网络和共享中心"中修改适配器设置。
静态 IP 的地址选号也有讲究。我习惯把宿主机虚拟网卡地址作为网段里的.1,虚拟机按角色分配不同的末位,比如 Web 服务器.10、数据库服务器.20、测试客户端.100等,这样通过 IP 就能判断是哪台机器,排查问题非常高效。
3.4 给 Host-only 加一条"出网"的实用配置
Host-only 默认不能访问外网,但实际使用中,虚拟机经常需要执行apt update、yum install、pip install等操作,如果完全断网会非常影响效率。
解决思路不是把 Host-only 改成 NAT,而是给虚拟机增加第二张网卡。具体做法是:虚拟机同时开启两张网卡,一张选 NAT 模式用于访问外网,另一张选 Host-only 模式用于局域网通信。这样既保持了 Host-only 的隔离特性,又解决了软件安装的网络需求。
具体配置流程如下:
- 在 VM 设置中添加第二块网卡,连接方式选 NAT。
- 开启第一块网卡的 Host-only 连接。
- 在虚拟机系统里同时启用两个网卡,分别配置 DHCP 或静态地址。
- 检查默认路由是否指向 NAT 网卡,确保外网流量走 NAT 通道。
这里有一个非常关键的路由问题。虚拟机同时挂了两张网卡后,系统的默认路由只会指向其中一张。如果你的默认路由指向的是 Host-only 网卡,外网依然不通,因为 Host-only 网卡根本没有网关。
检查方法是进入虚拟机终端执行ip route(Linux)或route print(Windows),确认默认路由的网关地址属于 NAT 网卡。如果指向不对,需要手动调整路由优先级。Linux 下可以修改/etc/iproute2/rt_tables或者使用ip route命令调整策略路由;Windows 下可以在"高级 TCP/IP 设置"里修改接口跃点数。
如果虚拟机数量多、不想每台都设置这个逻辑,也可以在宿主机上开启 Internet 连接共享(ICS),让宿主机的物理网卡共享网络给 Host-only 虚拟网卡。Windows 系统在"网络连接"里选中物理网卡,右键属性 -> "共享" -> 勾选"允许其他网络用户通过此计算机的 Internet 连接来连接",并在下拉框里选择 Host-only 虚拟网卡即可。但这种方式在 Windows 上偶尔会有 DNS 缓存问题,建议谨慎使用。
4. 常见网段冲突问题与排查技巧实录
再完美的规划也可能在运行中遇到问题。我把自己实战中踩过的一些坑和对应的排查方法整理出来,按症状分类,方便按图索骥。
4.1 症状一:虚拟机之间能 ping 通,但宿主机访问不了虚拟机
这个现象非常典型。虚拟机之间互通说明 Host-only 网络内部正常,问题基本出在宿主机到虚拟网卡这一段。
排查步骤从三层入手:
- 在宿主机执行
ipconfig /all或ip addr show,确认虚拟网卡(VMnet1 或 VirtualBox Host-Only Ethernet Adapter)上配置的 IP 地址和虚拟机处于同一网段。 - 检查宿主机路由表,确认指向虚拟网卡网段的路由存在且跃点数合理。Windows 下执行
route print,Linux 下执行ip route。 - 检查防火墙设置。Windows 的防火墙默认会拦截来自虚拟网卡的部分 ICMP 和入站连接请求,VMware 和 VirtualBox 并没有为各自的虚拟网卡创建完整的防火墙例外规则。最简单的排查办法是临时关闭防火墙测试,如果通了,说明就是防火墙规则问题,可以把虚拟网卡加入防火墙的"专用网络"信任列表。
- 如果虚拟机的系统也开了防火墙,同样要确认是否放行了来自 Host-only 网段的流量。
我在 Windows 上的固定做法是给防火墙添加一条"允许来自虚拟网卡的所有入站连接"的规则,并把这条规则的范围限定在 Host-only 虚拟网卡上,不会影响真实网络的安全。
4.2 症状二:宿主机能 ping 通虚拟机,但虚拟机 ping 不通宿主机
这个症状通常是单向通,问题大多出在宿主机防火墙过滤了 ICMP 入站请求。Windows 防火墙默认禁用了来自公共网络的文件共享和网络发现,虽然 Host-only 虚拟网卡通常被识别为"未识别的网络",但还是可能被套用公共网络配置文件的安全策略。
解决办法也是两种:要么在防火墙设置里放行"文件和打印机共享(回显请求 - ICMPv4-In)",要么把虚拟网卡对应的网络配置文件改为"专用"而非"公用"。Windows 10/11 可以在"设置" -> "网络和 Internet" -> "以太网"里点击当前连接,切换网络配置文件类型。
还有一种不太常见但容易忽略的原因:宿主机的虚拟网卡被系统设置了节能模式。一些网卡驱动支持"允许计算机关闭此设备以节约电源"选项,当系统进入节能状态后虚拟网卡会掉线,导致虚拟机无法访问宿主机。在设备管理器里找到对应虚拟网卡,取消勾选这个选项可以一劳永逸。
4.3 症状三:笔记本换个网络环境后,Host-only 突然不通
这是我早期入坑时最崩溃的问题。笔记本在家里用得好好的 Host-only 网络,到了公司或咖啡厅就连不上,虚拟机、宿主机互相之间全部失联。
原因很简单:移动办公时,笔记本连接的 WiFi 或有线网络的网段可能和 Host-only 网段重叠了。比如家里的路由器用192.168.56.1,而你 VirtualBox 的 Host-only 网段正好也用了192.168.56.0/24,两者冲突,系统路由表发生混乱,虚拟网卡的通信就被干扰。
排查方法:进入命令行查看当前物理网卡的实际 IP。Windows 执行ipconfig,找到无线网卡或有线网卡的 IPv4 地址,对比一下 Host-only 虚拟网卡的地址段,如果两者都在同一网段,说明必然冲突。
解决思路只有一条:修改 Host-only 网段为冷门网段,从根源上避开所有可能的冲突。我现在的固定搭配是 VMware 的 VMnet1 使用10.10.88.0/24,VirtualBox 的 vboxnet0 使用192.168.56.0/24,这两个网段在绝大多数路由器、公司网络、校园网环境里都极少出现,目前跑了几年没有再遇到过冲突问题。
4.4 症状四:为什么通过服务名称搜不到虚拟机或设备
热搜词里有一类典型问题:"为什么通过 PN 搜不到""宇视工程宝跨网段搜不到设备"。这类问题的本质和 Host-only 也有关系,涉及到局域网内的设备发现机制。
Windows 的网络发现功能依赖多播 DNS(mDNS)、WS-Discovery 和 NetBIOS 等协议,这些协议默认只会绑定在物理网卡上,不会自动监听虚拟网卡。所以你在 Windows 资源管理器里看不到 Host-only 网络里的机器,或者用某些软件搜索局域网设备时搜不到 Host-only 网段里的设备,这是正常现象,不代表网络有问题。
解决办法分两种思路:
- 主动添加 IP 通信:直接在目标软件里填写虚拟机的 IP 地址,绕开自动发现机制。SSH、VNC、SMB 这类工具都支持直接填 IP 访问。
- 开启虚拟网卡上的发现服务:在 Windows 的"高级共享设置"里勾选"启用网络发现",然后手动把 Host-only 虚拟网卡配置为"专用网络",部分发现协议就会开始在这张网卡上工作,但不是所有协议都能成功,效果因系统而异。
工业场景里宇视工程宝这类设备的跨网段搜索问题,就更复杂一些。设备搜索协议大多基于 UDP 广播或多播,广播默认只能在同一个二层网段内传播,无法跨越三层路由。笔记本和设备不在同一网段时,自然搜不到。这种情况下要么把电脑 IP 临时改成和摄像头同一网段,要么在路由器上配置 UDP 中继或广播转发规则。
4.5 一张速查表:网段规划自检清单
最后把我多年来形成的网段规划方法整理成一个自检清单,每次搭建新环境时对照过一遍,基本不会出问题。
| 检查项目 | 操作 | 通过标准 |
|---|---|---|
| 合法性 | 确认规划的网段属于私有地址段 | 属于 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 |
| 冲突排查 | ipconfig /all查看所有网卡 IP | 新网段和任何现有网卡 IP 不属于同一子网 |
| 路由检查 | route print(Windows)或ip route(Linux) | 没有两条相同目标网段的路由记录 |
| 防火墙 | 查看防火墙入站规则 | 放行 ICMP 回显请求和常用服务端口 |
| DHCP 范围 | 确认 DHCP 地址池不超过网段可用范围 | 地址池在网段内且不包含网关和广播地址 |
| 静态 IP | 确认虚拟机内静态地址完全落在 Host-only 网段 | 网段、掩码、网关配置一致 |
这套自检清单不复杂,但每一条都来自真实踩坑经验。如果你在配置过程中遇到类似问题,直接对着清单查漏比较高效。
其实做虚拟化网络规划这件事,本质上和整理房间一样:一开始多花十分钟把东西放到该放的位置,后面使用起来就非常顺畅;如果随手乱扔,后期找东西和收拾的时间可能远远超过那十分钟。我现在每次新建虚拟机之前,都会先把网络类型和 IP 规划写在虚拟机的备注里,这样即使过了几个月再回头看,也能快速知道这台机器在哪个网段、为什么这样配置,排查问题和维护环境的效率会高很多。