在Windows Hyper-V中可通过创建内部虚拟交换机并配置netsh NAT实现虚拟机NAT上网:先建内部交换机(如NATSwitch),为对应vEthernet网卡配静态IP(如192.168.100.1),再用netsh routing ip nat安装并添加full模式接口,最后虚拟机设同网段静态IP及该IP为网关即可连外网。
在windows hyper-v环境中,通过虚拟交换机配置nat网络,能让虚拟机访问外网,同时避免占用物理网络ip,也便于本地开发、测试隔离环境。核心是创建内部虚拟交换机 + 手动配置nat网关(使用windows自带的netsh interface portproxy和netsh routing ip nat命令),而非依赖外部路由器或第三方工具。
创建内部虚拟交换机
这是NAT网络的基础——它不绑定物理网卡,仅在宿主机与虚拟机间建立二层通信通道:
- 打开“Hyper-V管理器” → 右侧“虚拟交换机管理器” → 选择“新建虚拟网络交换机” → 类型选“内部”
- 命名如 NATSwitch,不勾选“连接到外部网络”
- 创建后,系统会自动生成一个名为“vEthernet (NATSwitch)”的虚拟网卡,出现在宿主机的网络连接中
为宿主机虚拟网卡分配静态IP
该IP将作为虚拟机的默认网关和NAT出口地址,需手动设置:
- 进入“网络连接”,找到刚生成的 vEthernet (NATSwitch)
- IPv4设为:192.168.100.1,子网掩码 255.255.255.0,DNS可留空(虚拟机可后续单独配)
- 确保此IP未被其他服务占用,且不与宿主机其他网段冲突
启用并配置NAT实例
Windows内置的IP路由NAT功能需通过PowerShell(管理员权限)启用:
- 执行:
netsh routing ip nat install(仅首次需要) - 添加NAT公网接口(即指向内部交换机的虚拟网卡):
netsh routing ip nat add interface "vEthernet (NATSwitch)" full - 验证是否生效:
netsh routing ip nat show interface应显示状态为 enabled
⚠️ 注意:此处“full”模式允许出站+入站(端口映射),若仅需虚拟机上网,用 private 即可;但调试服务(如Web、SSH)建议用 full 并配合端口转发。
配置虚拟机网络与连通性
在虚拟机内完成以下设置(以Windows或Linux客户机为例):
- 网卡绑定到刚创建的 NATSwitch 虚拟交换机
- 静态配置IP:如 192.168.100.10,子网掩码 255.255.255.0,默认网关填 192.168.100.1
- DNS可设为 192.168.100.1(若宿主机开启DNS转发)或直接填公共DNS(如 8.8.8.8)
- 测试:
ping 192.168.100.1(通)→ping 8.8.8.8(通)→ping www.baidu.com(通)
如遇不通,检查宿主机防火墙是否放行ICMP及UDP 53(DNS)、TCP 80/443;确认Remote Access服务已启动(NAT依赖该服务)。
不复杂但容易忽略关键点:内部交换机不能选“专用”,NAT接口名必须与虚拟网卡显示名称完全一致(含空格和括号),网关IP必须与虚拟网卡IP同网段且唯一。

















