我有以下配置:
- Windows 10 主机
- 主机上运行的 Hyper-V
- Windows 10 客户机
- AnyConnect VPN 可选择在主机上运行
期望行为:
- 无论主机是否连接到 VPN,客户操作系统都必须具有互联网连接
- 当主机连接到 VPN 时,客户操作系统可以访问 VPN 资源
正如所描述的这里(以及其他博客等类似操作)我在主机上运行了以下命令:
New-VMSwitch -SwitchName "WindowsNAT" -SwitchType Internal
New-NetIPAddress -IPAddress 192.168.50.1 -PrefixLength 24 -InterfaceAlias "vEthernet (WindowsNAT)"
New-NetNAT -Name "WindowsNAT" -InternalIPInterfaceAddressPrefix 192.168.50.0/24
然后我:
- 更改客户机以使用 WindowsNAT
- 将所有客户机 TCP 设置更改为:
- 静态 IP:192.168.50.3
- 网络掩码:255.255.255.0
- 网关:192.168.50.1
- DNS 主要:8.8.8.8
- DNS 辅助:4.2.2.1
实际行为:
- 当主机未连接到 VPN 时,客户机上的 Internet 连接。
- 当主机连接到 VPN 时,客户机上没有 Internet 连接
- 当主机连接到 VPN 时,客户机上没有 VPN 连接
附加信息:
- VPN 为全隧道
- 我想要的行为可以通过 VirtualBox 实现
关于如何实现这一点,有什么建议吗?我的系统管理员是否需要设置分割隧道?如果是,那么 VirtualBox 如何使用完整隧道实现相同的行为?
答案1
我已经研究这个问题很长时间了。有一个简单的解决方案(或者可能是变通方法?)但我无法真正解释它为什么有效。
我复制了问题中描述的场景并遇到了问题:当主机连接到 Cisco AnyConnect VPN 时,虚拟机上没有互联网。
在您的主机上,转到控制面板 -> 网络和共享中心 -> 更改适配器设置 右键单击您的 Cisco AnyConnect 安全移动客户端连接并选择“属性”。转到“共享”选项卡并选中“允许其他网络用户通过此计算机的 Internet 连接进行连接”和“允许其他网络用户控制或禁用共享 Internet 连接”。神奇之处在于:在“家庭网络连接:”下拉菜单中,您为 Hyper-V 选择默认交换机(我将自己的命名为 vEthernet(默认交换机))。单击确定并在您的 VM 上测试互联网连接。
可能有人比我更清楚为什么这样做有效,但确实有效!但也有一些缺点:当主机上的 VPN 断开连接并重新连接 VPN 时,您可能必须重新执行共享位。当主机重新启动时,您必须重新执行上述步骤。
希望这对你们有所帮助!干杯!
答案2
以下是我在使用 AnyConnect 和来宾 VM 时遇到的问题,我将告诉您如何为我解决这些问题。
MatthiasPettersson 的解决方案不再有效,因为默认开关未显示在网络适配器列表中。它要么被隐藏(Windows 11),要么使用其他机制。我不确定这种行为何时发生了变化……但现在就是这样。
- 当主机上的 AnyConnect 连接到 VPN 时,客户操作系统无法访问互联网。
- 主机无法与客户机建立安全网络连接“此工作站与主域之间的信任关系失败”
- 域名解析无法正常工作。以前我需要使用客人姓名.mshome.net访问我的虚拟机客人姓名,但最近它也停止了工作。
解决方案:卸载 Hyper-V,然后重新安装。您可以通过“Windows 功能”菜单执行此操作(运行命令:optionalfeatures)在我执行此操作后,上面列出的所有问题都得到了解决,无需进一步更改。