如何在 Windows 中创建用于测试的虚拟网络

最后更新: 19/03/2026
作者: 艾萨克
  • 使用 Hyper-V 和 SCVMM 进行网络虚拟化,可以在 Windows 中创建隔离的实验室,共享物理硬件而不混合网络。
  • Windows 内置了无需额外软件即可设置家庭 VPN 的工具,可用于安全远程访问和网络测试。
  • 使用 VirtualBox,您可以在多个 Windows 虚拟机之间设置简单的本地测试网络,控制 IP 地址、防火墙和连接性。
  • Packet Tracer 或 GNS3 等模拟器和仿真器通过允许设计和验证复杂网络,对这些实验室起到了补充作用。

Windows 中的虚拟网络环境

在 Windows 系统中搭建虚拟网络进行安全测试、实验室工作或远程办公,是避免破坏真实网络的最佳方法之一。您可以在受控环境中运行虚拟机、模拟小型数据中心、测试防火墙,甚至仅使用系统工具创建自定义 VPN。

本指南旨在将您在 Windows 中创建用于测试的“网络”或虚拟网络所需的一切内容汇总到一篇文章中:从如何使用 Hyper-V 和 SCVMM 隔离整个环境,到如何设置家庭 VPN,包括使用VirtualBox和网络模拟器创建复杂设计的简单示例,而无需在硬件上花费一分钱。

Windows 中的虚拟测试网络是什么?它有什么用途?

虚拟测试网络是一个模拟或隔离的网络环境,它运行在您的物理硬件上,通常使用虚拟机和网络虚拟化技术。您无需将物理设备连接到真实的交换机和路由器,所有操作都在软件中完成:虚拟机、虚拟交换机、逻辑网络,以及(如果需要)VPN。

这类环境非常适合练习安全、网络设计和部署,而无需实际操作网络。您可以测试防火墙规则、配置入侵防御系统 (IPS)、部署安全信息和事件管理 (SIEM)、搭建类似 DVWA 的易受攻击的 Web 服务器、创建一个小型 Active Directory,随意破坏它,然后重新开始。使用网络分析和审计工具来评估测试结果也很有帮助。

在大型企业环境中,通常会搭建实验室来几乎完全复制生产网络:相同的路由器、交换机、防火墙和服务器,但运行在测试环境中。而家庭用户或小型企业通常没有足够的预算来搭建这样的实验室,因此在 Windows 系统中使用虚拟机、模拟器和虚拟网络就成了更合理的替代方案。

主要优势在于,您可以使用 SCVMM 和 Azure Pipelines 等工具自动部署这些环境;如果您更倾向于“基础设施即代码”的开发方式,也可以使用脚本和 Ansible。这样,您可以共享实验室的“模板”,任何人都可以在自己的机器上进行设置和修改,并且这些修改将永久生效。

Windows 系统中使用 Hyper-V 和 SCVMM 进行网络虚拟化

如果您想在专业的 Windows 环境中创建复杂、隔离且可重用的虚拟网络,Hyper-V + System Center Virtual Machine Manager (SCVMM) 的组合是最强大的解决方案。它允许您在同一物理网络之上叠加多个不同的虚拟网络,而这些虚拟网络彼此之间互不干扰。

其理念是,您可以让多个隔离的网络共享同一台 Hyper-V 主机:来自不同环境的虚拟机可以共存于同一台物理服务器上,但每组虚拟机只能“看到”自己的虚拟网络。这非常适合测试实验室、构建-部署-测试场景以及临时质量保证环境。

SCVMM 使用两个关键概念:逻辑网络和虚拟机网络。逻辑网络代表物理网络结构和可路由的 IP 地址,而虚拟机网络(VM 网络)是虚拟机使用的“覆盖”网络。借助 Hyper-V 网络虚拟化,每个虚拟机都可以拥有一个独立于底层物理 IP 地址范围的“虚拟”IP 地址。

Windows 测试中最有用的功能包括:您可以创建跨越同一集群或私有云中多个主机的隔离网络,在同一主机上托管来自不同网络的虚拟机,而无需它们相互通信,并从您在 SCVMM 中定义的任何 IP 组或池中为它们分配 IP 地址。

使用 SCVMM 设置隔离虚拟网络的前提条件

在开始使用 Hyper-V 和 SCVMM 创建隔离实验室之前,您需要满足一些最低基础架构要求。如果缺少其中任何一项,网络虚拟化可能无法按预期工作。

作为基础,您需要一台 SCVMM 2012 R2 或更高版本的服务器,它将作为您管理逻辑网络、逻辑交换机以及在 Hyper-V 主机上配置虚拟机的核心。

Hyper-V 主机必须运行 Windows Server 2012 R2 或更高版本,并已安装 Hyper-V 角色,且至少连接两张物理网卡 (NIC)。一张网卡通常用于企业网络或互联网访问;另一张网卡将配置为干线模式,用于网络虚拟化层。如果您需要管理和调试这些虚拟接口, Windows 中的虚拟网络适配器指南可能会对您有所帮助。

主干网卡必须分配一个特定的 VLAN(例如 991),并分配可路由的 IP 子网(例如 10.10.30.1/24)。通常情况下,您所在工作环境中的网络管理员会在物理交换机上处理这些 VLAN 和路由配置。

另一个重要要求是,同一主机组中的所有 Hyper-V 主机必须共享相同的中继 VLAN ID 和相同的可路由子网设计。此主机组将用于部署您将通过 SCVMM 设置的隔离网络。

检查网络虚拟化连接

在骨干网上配置好网卡,并在 Hyper-V 主机上配置好主机后,您必须验证物理机是否能够通过提供商网络(支持虚拟网络的物理网络)正确“看到”彼此。如果验证失败,其余步骤将无法启动。

在每台 Hyper-V 主机上,打开 RDP 会话,然后以管理员身份运行 PowerShell。在那里运行 cmdlet Get-NetVirtualizationProviderAddress 获取配置为 trunk 模式的物理网卡及其对应 VLAN 的提供商地址。

然后,从另一台 Hyper-V 主机上,以提升的权限重新打开 PowerShell。 并抛出一个 ping -p <ProviderAddress> 朝向第一个主机的提供商地址。在所有方向上重复此过程,以确保所有主机都可以通过骨干网络相互访问。

如果任何一次 ping 测试失败,则需要检查物理网络上的 VLAN、路由或防火墙配置。在这种情况下,最好在进行虚拟化层配置之前,先与企业网络管理员进行协调。

在 SCVMM 中创建网络虚拟化层

SCVMM 中的“虚拟化层”是通过几个相互关联的步骤构建的:创建逻辑网络、定义端口配置文件、配置逻辑交换机,最后将这些交换机应用到 Hyper-V 主机。每个主机组只需执行一次此步骤。

  Photoshop 错误:暂存盘已满 [分 3 步修复]

首先,您需要登录 SCVMM 管理控制台。然后,在“Fabric”视图中,进入“网络”部分,并访问“逻辑网络”部分,开始创建基本网络结构。

您应该创建的第一个逻辑网络是支持网络虚拟化的网络。创建时,您可以选择“单一连接网络”选项,并确保在其之上创建的新网络可以使用 Hyper-V 网络虚拟化,从而使其上层的所有虚拟机网络都能从中受益。

接下来,将网络站点添加到相应的主机组。该站点指定主机骨干网卡中使用的 VLAN 标识符以及相关的可路由 IP 子网。建议为站点指定一个易于识别的名称,以避免日后混淆。

接下来,为该逻辑网络创建一个 IP 地址池,指定 VLAN 可用的路由 IP 地址范围;如果有多个子网,可以为每个子网创建一个地址池。网关也需要指定(通常是地址范围内的第一个 IP 地址),DNS 或 WINS 设置则保留默认设置。

内部逻辑网络准备就绪后,您需要创建另一个用于外部访问的逻辑网络,该网络专为互联网连接而设计。在这种情况下,您需要选择“一个连接的网络”选项,并勾选相应的复选框,以便自动创建一个同名的虚拟机网络,使虚拟机可以直接连接到该网络。

在外部逻辑网络中,为同一主机组再次添加了一个网络站点,但这次使用的是 VLAN 0,这表明流量以正常访问模式通过 NIC 访问外部网络或 Internet,而没有进行网络虚拟化。

测试网络的端口配置文件和逻辑交换机

在 SCVMM 中已经定义了逻辑网络,下一步是创建端口配置文件,描述主机的物理适配器如何连接到这些网络,然后将它们分组到逻辑交换机中。

在 SCVMM 架构的网络部分,您可以创建一个新的 Hyper-V 端口配置文件。对于网络虚拟化环境,选择“上行链路端口配置文件”类型,并选择“Hyper-V 端口”负载均衡算法,同时选中启用 Hyper-V 网络虚拟化的复选框。

然后,为外部逻辑网络创建第二个端口配置文件,同样作为上行链路配置文件,但这次负载均衡算法保留为“默认主机”,并且未启用网络虚拟化。此配置文件将与普通互联网或企业网络连接关联。

接下来,系统会生成逻辑交换机,每种类型的流量对应一个交换机。第一个是“内部”交换机,它将使用网络虚拟化的端口配置文件;第二个是“外部”交换机,用于与互联网通信。

创建逻辑交换机时,在相应的选项卡上选择合适的上行链路端口配置文件,以便加入该交换机的所有主机共享相同的网络和负载均衡特性。

此部分的最后一步是将这些逻辑交换机添加到主机组中的所有 Hyper-V 主机。转到“虚拟机和服务”,选择每个主机,转到“属性”,然后在“虚拟交换机”选项卡上,将正确的物理适配器与内部和外部逻辑交换机关联起来。

用于在 Windows 中测试的虚拟网络拓扑

网络虚拟化基础架构搭建完成后,您需要确定测试实验室所需的拓扑类型。借助 SCVMM 和 Azure Pipelines 扩展,您可以自动执行构建-部署-测试场景中的几种典型配置。

一种方案是构建一个由 Active Directory 域支持的隔离网络。在这种情况下,实验室包括一台可连接到 Internet 或 TFS/Azure DevOps 服务器的“边缘”机器和一个部署代理,一台包含内部域 AD 和 DNS 的虚拟机,以及多个用于部署和测试软件的应用程序虚拟机。

另一种可能的拓扑结构是无本地 Active Directory 的隔离网络。在这种架构中,边缘虚拟机仍然运行着部署代理并具备外部连接能力,但应用程序机器并未集成到内部域中;它们只是作为独立的机器运行,可通过该入口点访问。

最后,您可以选择使用 Active Directory 构建非隔离网络,并将其连接到外部网络。应用程序虚拟机也连接到外部网络,与其他物理机共享部分流量,同时保持边缘虚拟机、本地域和受控的部署流程。

Azure Pipelines 的 SCVMM 扩展允许您在构建或发布管道中定义以下任何拓扑:从模板或 VHD 预配 VM、创建或分配 VM 网络以及连接将在部署和测试阶段使用的代理。

使用 Azure Pipelines 和 SCVMM 实现实验室环境自动化

如果您希望每次发布构建版本时都能“按需”启动 Windows 测试网络,那么将 Azure Pipelines 与 SCVMM 扩展结合使用将非常强大。它允许您将实验室视为管道的一部分。

典型的流程是从在 Azure DevOps 实例上安装 SCVMM 扩展开始。此扩展会向构建和发布管道添加一个特定任务,用于管理 SCVMM 环境:以自动化的方式创建虚拟机、配置隔离虚拟网络以及准备构建-部署-测试场景。

在管道中,您可以添加一个 SCVMM 任务,并配置与将托管虚拟机的 SCVMM 服务器的服务连接。在该任务中,您可以选择是从模板、已存储的虚拟机还是现有虚拟磁盘 (VHD/VHDX) 创建新的虚拟机。

在需要隔离网络的情况下,通常应删除新建虚拟机上现有的虚拟机网络,并将内部拓扑的虚拟机网络字段留空。但是,如果需要虚拟机也连接到外部网络(例如在非隔离拓扑中),则需要指定相应的外部虚拟机网络。

您还需要指定虚拟机将部署在哪个 SCVMM 主机云上。如果您使用的是私有云,则该云中的主机必须已配置好您之前创建的内部和外部逻辑交换机,以便一切正常运行。

SCVMM 任务本身允许您选择是否使用网络虚拟化,并且如果适用,可以为 Active Directory 定义特定的 VM 机器:您可以指定 VM 名称、源映像、在该源上配置的静态 IP 以及内部域的 DNS 后缀。

  svchost.exe 进程危险吗?一份完整且安全的指南

您还需要定义要创建的虚拟机网络的名称及其内部子网,并将它们连接到相应的逻辑网络。建议使用唯一的名称,例如包含版本号,以便轻松跟踪每个环境来自哪个部署。

最后,配置边缘虚拟机,它将负责与 Azure Pipelines 或 TFS 通信。选择其源模板(其中应已预先下载代理文件),并指定其用于出站通信的外部虚拟机网络。部署或自动化代理将以唯一的名称或标签安装到此计算机上。

在虚拟网络上启用构建-部署-测试场景

SCVMM 任务设置好虚拟网络环境后,通常的做法是在管道中链接另一个作业,该作业在部署于边缘 VM 上的代理上运行,然后从那里部署到应用程序 VM。

在 Azure Pipelines 中,您可以根据边缘虚拟机上安装的代理类型,选择部署组作业或经典代理作业。相应的部署组或代理池在作业属性中选择。

如果您使用自动化代理,可以在 Agent.Name 上添加“请求”,以便管道查找您在配置边缘虚拟机时定义的确切代理名称。对于部署组,标签用于组中机器的属性中。

该工作流程还包括应用程序部署和测试任务:在虚拟机上安装应用程序、运行功能测试、性能测试和安全测试等。完成后,您可以通过在 SCVMM 任务中选择删除选项来决定是否销毁虚拟机。

其结果是,每次流水线运行都可以创建一个新的隔离环境,将您正在测试的版本部署到该环境中,运行测试,如果一切顺利,则会自动拆除该环境,只留下测试结果和日志。

如何在 Windows 系统上创建无需第三方软件的家庭 VPN

除了内部实验室网络之外,许多用户还希望在 Windows 系统上设置自己的 VPN,以便从外部连接到他们的家庭或办公室网络。这并非是为了“模拟”从其他国家/地区浏览网页,而是为了获得隐私和安全的远程访问。

Windows 系统上的家庭 VPN 会在客户端设备和服务器计算机之间建立一条加密隧道。所有流量(搜索、电子邮件、访问共享文件夹等)都会被加密,并首先传输到 VPN 服务器,然后由 VPN 服务器与互联网或本地网络通信。对于网站而言,显示的 IP 地址是 VPN 服务器的 IP 地址,而不是客户端的 IP 地址。

这种类型的 VPN 还允许您访问本地网络上的资源,就像您身在家中一样:打印机、文件服务器、带有远程桌面功能的台式电脑等等。对于简单的远程办公来说,这是一个非常方便的解决方案。

在 Windows 10 和 11 中,无需安装任何额外软件,只需使用系统的“传入连接”选项即可设置一个小型 PPTP VPN 服务器。虽然这并非最完善的解决方案,但通常足以满足家庭实验室和测试网络的需求。

如何在 Windows 上逐步设置 VPN 服务器

要在 Windows PC 上设置自己的 VPN 服务器,首先需要启用入站连接,然后调整分配给 VPN 客户端的 IP 地址范围,在路由器上打开相应的端口,并调整防火墙。

在 Windows 设置中,转到“网络和 Internet”。在 Windows 10 中,转到“状态”部分,然后单击“更改适配器选项”;在 Windows 11 中,转到“高级网络设置”,然后单击“更多网络适配器选项”,这将打开旧版 Windows 连接窗口。

在显示以太网和 Wi-Fi 接口的窗口中,按 F10 打开经典菜单,选择“文件”,然后选择“新建传入连接”。这样就告诉 Windows 您希望允许其他用户通过网络连接到计算机。

接下来,您需要选择哪些用户帐户可以使用 VPN。您可以选择现有帐户,或者更重要的是,专门为 VPN 创建一个新用户,并设置用户名和密码,以便在其他设备连接时使用。

稍后,向导会提示您选择连接模式。请务必选择“通过 Internet”选项,因为这样会将此传入连接转换为可从本地网络外部访问的 VPN 服务器。

在网络软件设置中,选择“Internet 协议版本 4 (IPv4)”,然后转到“属性”。默认情况下,服务器将使用相同的本地 IP 网络,但理想情况下,您应该定义一个特定的 IP 地址范围,并将其分配给 VPN 客户端。

选择指定 IP 地址范围的选项,并定义几个符合路由器子网的地址。例如,如果网关是 192.168.1.1,您可以将 192.168.1.20 到 192.168.1.30 保留给 VPN 客户端。该范围的前三个地址段必须与路由器的 IP 地址匹配。

配置完 IP 地址范围后,返回向导并单击“允许访问”。此时,Windows 将创建 VPN 服务器,并准备好接收使用该用户和该 IP 地址范围的传入连接。

打开路由器上的端口并调整 Windows 防火墙设置

要允许远程客户端通过互联网访问您的 VPN 服务器,仅仅在 PC 上进行配置是不够的;您还需要在路由器上打开相应的端口,并确保 Windows 防火墙允许流量通过。

Windows 系统上此类 PPTP VPN 的标准端口为 1723。您需要访问路由器的配置界面(通常是在浏览器中输入 192.168.1.1 或 192.168.0.1),并创建一个端口转发规则,将端口 1723 上的入站流量转发到您电脑的本地 IP 地址。

要查找计算机的本地 IP 地址,请打开命令提示符窗口并运行“ipconfig”命令。您看到的 IPv4 地址就是您需要在路由器规则中输入的地址。请勿将其与“默认网关”(即路由器的 IP 地址)混淆。

在 Windows 系统中,打开经典控制面板,依次点击“系统和安全”、“Windows Defender 防火墙”。然后,选择“允许应用或功能通过 Windows Defender 防火墙”选项。

  清理孤立的配置文件和 Windows 缓存

点击“更改设置”,在列表中找到“路由和远程访问”选项。勾选该应用程序的“专用网络”和“公共网络”复选框,然后保存更改。这将指示防火墙允许与 VPN 服务器相关的流量。

从 Windows 和其他设备连接到 VPN

VPN 服务器准备就绪且端口已打开后,您可以从另一台 Windows 计算机或支持 PPTP 的 Android/iOS 移动设备进行连接(请注意,出于安全原因,某些系统正在取消支持,因此出于测试目的,建议检查可用选项)。

在客户端计算机上,转到“设置”>“网络和 Internet”>“VPN”,然后单击“添加 VPN”。在 VPN 提供商下,选择“Windows”,为连接指定一个描述性名称,然后在“服务器名称或地址”中输入路由器的公共 IP 地址,或者如果您使用的是 No-IP 等服务,则输入动态域名。

在用户名和密码字段中,输入您在设置传入连接时创建的 VPN 用户凭据。保存设置,从列表中选择 VPN,然后单击“连接”。如果一切正常,您的计算机将从您定义的地址范围内获取一个 IP 地址,您就可以访问远程网络了。

在安卓或iOS设备上,操作步骤类似:添加新的VPN,选择PPTP协议(如果仍然可用),输入服务器的IP地址或域名,以及您的凭据。连接成功后,所有依赖于本地网络或加密隧道的服务都将像在您的局域网内一样正常运行。

本地测试网络,包含 Windows 和 VirtualBox。

如果您想在 Windows 系统中更简单地开始尝试网络,一个非常实用的选择是在内部网络中使用 VirtualBox 搭建一个包含两个 Windows 虚拟机的迷你实验室。

首先,您需要克隆一台已安装 Windows 10 的基础虚拟机。克隆时,务必选择“重置 MAC 地址”选项,以确保克隆虚拟机的虚拟网络适配器拥有不同的物理地址;否则,两台虚拟机将拥有相同的 MAC 地址,从而导致网络冲突。

在每个虚拟机中,您可以从系统属性配置计算机名称和工作组:您可以为机器指定不同的名称(例如 client1 和 client2),但将它们放在同一个工作组中,例如“Company_YourName”,然后重新启动以使更改生效。

在每个示例中,您创建两个帐户:一个具有管理员角色,另一个是标准帐户,该帐户允许您测试权限、访问共享资源等。例如,管理员组中的 Supervisor 用户和用户组中的 super1/super2 用户。

默认情况下,VirtualBox 通常将虚拟机的网络设置为 NAT 模式,这样虚拟机和主机都可以通过主机访问互联网,但它们实际上并不“在同一网络上”,这就是为什么它们可以拥有相同的内部 IP 地址并继续工作的原因。

为了模拟真实的本地网络,请关闭虚拟机并将其网络适配器更改为“内部网络”。这相当于将它们连接到虚拟交换机。重启后,它们将无法访问互联网,并且网络接口将显示为没有分配 IP 地址。

现在,在每台 Windows 机器上,您配置一个静态 IP 地址,位于同一子网中,例如 192.168.100.101 和 192.168.100.102,子网掩码为 255.255.255.0,无需网关或 DNS,即可拥有一个纯粹的本地实验室网络,没有外部访问。

如果您尝试在两台机器之间进行 ping 测试,会发现最初没有响应,因为 Windows 防火墙默认会阻止 ICMP 请求。您有两种选择:禁用防火墙进行测试,或者创建一条自定义入站规则,允许 ICMP“回显请求”类型。

通过在每个虚拟机中创建该规则,您可以使用 ping 来验证连接性,然后开始共享文件夹、测试身份验证、试验更高级的防火墙策略等等,所有这些都在一个非常简单但相当真实的网络中进行。

用于设计复杂实验室的网络模拟器和仿真器

当你的 Windows 实验室无法满足需求,而你又想模拟更大的网络(包括路由器、交换机、防火墙,甚至是来自不同制造商的设备)时,另一种工具就派上了用场:网络模拟器和仿真器。

模拟器(例如 Cisco Packet Tracer)无需运行设备的实际操作系统,即可在软件中重现网络行为。它非常适合学习基本的路由和交换概念、准备初始认证考试以及在 CPU 和内存资源非常有限的情况下进行测试。如果您想开始使用模拟器,Packet Tracer 教程是一个不错的起点。

模拟器(例如 GNS3 或 EVE-NG)直接运行路由器、交换机、防火墙和其他设备的操作系统镜像,几乎完美地模拟了实际硬件。这通常用于高级认证(CCNP、CCIE)和接近生产环境的测试。

这些程序允许您在实际搭建网络之前进行网络设计:它们定义了逻辑图、IP 地址分配、每个设备的位置、安全架构等等。许多预算有限的公司使用这些虚拟实验室来代替搭建完整的物理实验室。

然而,功能强大的模拟器会消耗大量资源,并且需要一定的学习成本。有些模拟器需要付费的操作系统镜像,而另一些则需要一定的技术技能才能将额外的虚拟机(Windows 或 Linux)集成到网络拓扑中。

在 Windows 系统中,最常用的测试辅助工具包括 Cisco Packet Tracer(入门非常容易)、GNS3(开源且功能强大,集成了 VirtualBox 和 QEMU)、EVE-NG(非常适合多厂商环境)、Cisco VIRL(付费,专为高级认证而设计)以及 OMNeT++、QualNet 和 MIMIC 等解决方案,这些解决方案更侧重于大规模模拟和研究环境。

虽然这些模拟器对于学习和规划网络非常有效,但值得注意的是它们的局限性:它们并不总是能 100% 反映真实行为,大型拓扑结构需要不错的硬件,有些需要付费许可,而且所有模拟器都需要投入时间才能正确掌握。

通过将所有这些工具组合在一起——Hyper-V、SCVMM、Windows 上的 VPN、使用 VirtualBox 的内部网络和网络模拟器——您可以在家中或小型办公室建立一个非常完整的生态系统,用于在 Windows 上设计、部署和测试虚拟网络:从具有两个客户端的简单实验室到具有 AD、防火墙、SIEM、易受攻击的 Web 服务器和 CI/CD 管道的隔离多节点环境,这些管道会在您需要测试安全性或基础架构时自动设置和销毁实验室。

您可以在 Hyper-V、Virtualbox 或 VMWare-2 中配置的网络类型
相关文章:
Hyper-V、VirtualBox 和 VMware 中的网络类型:配置和差异