核心是在每张物理网卡对应的虚拟机网络适配器上单独设置VLAN ID,而非交换机层级统一打标;需确保网卡驱动支持802.1Q、Windows版本合规、交换机端口设为Trunk,并为每张物理网卡创建独立外部虚拟交换机,再逐虚拟网卡配置唯一VLAN ID,且IP子网须与VLAN严格匹配。
windows 中为多个物理网卡独立配置不同虚拟网络标签(即 vlan id),核心是**在每张物理网卡对应的虚拟机网络适配器上单独设置 vlan id**,而不是在交换机层级统一打标。hyper-v 不支持外部虚拟交换机全局启用 vlan 标记,必须逐虚拟网卡配置。
确认硬件与系统前提
以下条件缺一不可:
- 物理网卡驱动需支持 802.1Q VLAN tagging——打开“设备管理器”→展开“网络适配器”→右键对应网卡→“属性”→“高级”选项卡,查找“VLAN ID”“802.1Q Tagging”或“Priority & VLAN”类选项,确保可启用或存在相关设置
- Windows 版本为 Pro / Enterprise / Server,且已启用 Hyper-V 功能(PowerShell 运行 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 并重启)
- 连接这些网卡的物理交换机端口必须设为 Trunk 模式,并放行你计划使用的全部 VLAN ID(如 VLAN 10、20、30)
为每张物理网卡创建专用外部虚拟交换机
不共用一个外部交换机,而是按网卡一一对应创建,避免混淆:
- 打开 Hyper-V 管理器 → “虚拟交换机管理器” → 新建类型选“外部”
- 第一张物理网卡(如 Ethernet)→ 命名为 VLAN-Ext-Red,绑定该网卡,勾选“允许管理操作系统共享此网络适配器”
- 第二张物理网卡(如 Ethernet 2)→ 命名为 VLAN-Ext-Blue,绑定另一张网卡,同样勾选共享选项
- 每建一个都点“确定”,接受网络中断提示
在虚拟机网卡上分别设置 VLAN ID
VLAN 标识必须落在虚拟机的网络适配器级,且每个适配器只能设一个 ID:
- 右键虚拟机 → “设置” → 左侧选“网络适配器”
- 右侧“虚拟交换机”下拉选择对应交换机(如 VM-A 用 VLAN-Ext-Red)
- 展开“高级功能” → 勾选“启用虚拟局域网标识” → 输入唯一 VLAN ID(如 10)
- 另一台虚拟机若走第二张物理网卡,则选 VLAN-Ext-Blue,并设为 VLAN 20
- 切勿在任一虚拟交换机的属性页里填写 VLAN ID——该字段对外部交换机无效,填了反而干扰
IP 地址与子网需严格匹配 VLAN
VLAN 是二层隔离,不同 VLAN 必须使用不同子网,否则无法通信:
- VLAN 10 的虚拟机分配如 192.168.10.5/24,网关指向同 VLAN 的三层设备(如宿主机启 RRAS 或路由器 VM 的 192.168.10.1)
- VLAN 20 的虚拟机分配如 192.168.20.5/24,网关为 192.168.20.1
- 宿主机若需参与多个 VLAN,可在对应 vEthernet 适配器上手动添加辅助 IP(如为 vEthernet (VLAN-Ext-Red) 加 192.168.10.1)
- 建议用 Wireshark 抓包验证:VLAN 10 流量帧头应带 802.1Q tag,VID=10;VLAN 20 则为 VID=20

















