Hyper-V中启用虚拟网卡VLAN Tagging需三层协同:先确认物理网卡驱动启用VLAN功能(高级设置中开启IEEE 802.1Q),再创建外部虚拟交换机并勾选“允许管理操作系统共享”,最后在虚拟机“网络适配器→高级功能”中启用VLAN标识并填入1–4094的有效ID,且须与物理交换机Trunk允许列表一致。
要在 hyper-v 虚拟机中启用虚拟网卡的 vlan tagging(即 vlan 标识),关键不是在虚拟机内部设置,而是通过 hyper-v 管理层为该虚拟网卡指定 vlan id。整个过程依赖三层协同:物理网卡支持、虚拟交换机配置、虚拟机网卡绑定。只要其中任一环缺失或不匹配,vlan 就无法生效。
确认物理网卡支持 VLAN 功能
这是最容易被忽略的前提。即使 Hyper-V 设置了 VLAN ID,若物理网卡驱动未启用 VLAN tagging,数据帧不会被打上 802.1Q 标签,下游交换机就无法识别和转发。
- 打开「网络连接」→ 右键对应物理网卡 → 「属性」→ 「配置」→ 「高级」选项卡
- 查找类似 VLAN ID、IEEE 802.1Q VLAN 或 VLAN Tagging 的条目
- 将其设为「启用」,并确保值为空或设为 0(表示透传,不强制打标签)——注意:这里不是填你想要的业务 VLAN,而是开启硬件能力
- 若找不到相关选项,说明网卡驱动老旧或不支持;建议更新驱动或换用 Intel I210/I350 等明确支持 VLAN 的网卡
创建外部虚拟交换机并允许管理 OS 共享
必须使用「外部」类型虚拟交换机,才能让虚拟机流量经由物理网卡进出。是否勾选「允许管理操作系统共享此网络适配器」取决于你的用途:
- 如果宿主机(Windows)本身也要上网或参与该 VLAN 网络,务必勾选
- 若仅用于虚拟机通信,且宿主机走另一张网卡,则可不勾选(更安全)
- 创建时无需在此处设置 VLAN ID —— Hyper-V 中 VLAN 是按端口(即虚拟网卡)单独设定的,不是交换机全局设定
为虚拟机网卡启用并指定 VLAN ID
这才是真正生效的一步。VLAN ID 必须与物理交换机上对应端口配置的 Access VLAN 或 Trunk 允许列表一致。
- 在 Hyper-V 管理器中右键目标虚拟机 → 「设置」→ 左侧选择「网络适配器」
- 确保「虚拟交换机」已选中你刚创建的外部交换机
- 展开「高级功能」→ 勾选「启用虚拟局域网标识」→ 在输入框中填入整数 VLAN ID(如 10、100、2001)
- 注意:该 ID 不可为 0 或 4095(保留值),范围是 1–4094
- 同一台宿主机上多个虚拟机可分配不同 VLAN ID,实现逻辑隔离
验证与排错要点
配置完成后不能只看虚拟机能否 ping 通网关,要分层验证:
- 虚拟机内执行
ipconfig /all(Windows)或ip a(Linux),确认获取的是目标 VLAN 对应网段的 IP - 检查物理交换机端口是否设为 Trunk 模式,并已允许该 VLAN 通过(例如:
switchport trunk allowed vlan 10,100) - 若虚拟机获取不到地址,先确认 DHCP 服务器是否监听该 VLAN,或静态 IP 是否与 VLAN 子网匹配
- 禁用宿主机防火墙临时测试,排除策略拦截
- 抓包验证:在宿主机用 Wireshark 过滤
vlan.id == 10,看进出流量是否带正确标签

















