Windows 下 VMware NAT 虚拟机 IPv6 配置
1. 前言
本文记录如何在 Windows 主机上给 VMware NAT(VMnet8)虚拟机配置 IPv6,使虚拟机可以通过 NAT 访问公网 IPv6 网络。
故事背景:
vmware虚拟机需要使用ipv6上网,但vmnat下只有ipv4,完全无v6。
且虚拟机无法使用桥接,原因是上级网络必须网页认证,而虚拟机为定制版centos 7系统只能pppoe拨号、dhcp、固定IP三种接入方式,无浏览器、curl等任何工具、无命令行权限。
因此虚拟机必须通过宿主机NAT拿到V4,通过宿主机路由RA拿到V6。
https://github.com/ChristianKreuzberger/radvd-win 删库(用于Windows 上跑一个 RA 服务,把 IPv6 前缀广播给 VMnet8 网段,虚拟机就能自动拿地址)。考虑纯命令行的办法。
问题假设
假设宿主机的网卡 IPv6 地址为:
240c:c983:3:46ef:98dd:aad4:12b7:6236/64
(通常 ISP 分配前缀为 /64。)
在 VMnet8 网卡的ipv6协议上手动配置如下:
- IPv6 地址:
240c:c983:3:46ef::1/64
- DNS:
240c::6666
2. 配置步骤
a. 开启 IPv6 转发
在管理员 PowerShell 中执行:
1 | netsh interface ipv6 set interface "WLAN" forwarding=enabled |
说明:
第一条命令开启 WLAN(宿主机联网网卡)的 IPv6 转发。
第二条命令开 VMnet8 的 IPv6 转发,使虚拟机流量能经过宿主机 NAT 出公网。
b. 设置 VMnet8 广播前缀
1 | netsh interface ipv6 set route 240c:c983:3:46ef::/64 "VMware Network Adapter VMnet8" publish=yes |
说明:
将宿主机的 /64 IPv6 前缀广播到 VMnet8,使虚拟机能自动获取地址。
c. 让 VMnet8 发送 Router Advertisements (RA)
1 | netsh interface ipv6 set interface "VMware Network Adapter VMnet8" advertise=enabled |
说明:
启用 RA,使虚拟机通过 SLAAC 自动分配 IPv6 地址。
d. 通知 RA 使用默认路由作为虚拟机网关
1 | netsh interface ipv6 set interface "VMware Network Adapter VMnet8" advertisedefaultroute=enabled |
说明:
虚拟机默认网关将设置为 VMnet8 地址 240c:c983:3:46ef::1。
3. 虚拟机配置与验证
虚拟机只能通过 RA 自动获取 IPv6 地址。定制版centos 7 无命令行权限。
配置完成后虚拟机拿到了:240c:c983:3:46ef:2f6:c0ff:fe62:6447 且能正常上网。
4. 总结
执行以上步骤后,VMware NAT 虚拟机即可通过宿主机 NAT 上公网 IPv6,实现 IPv6 上网。
整个流程不需要改虚拟机网卡为桥接模式,也无需第三方软件,完全使用 Windows 自带命令。