我在 Mac OS 11.6.5 Big Sur 上运行来自 VM Ware fusion 12.2.3 的 Windows 2019 Server 客户机。VPN 是 Cisco AnyConnect Secure Mobility Client 4.10.00093。
我的本地网络已开启10.0.0.0/24
VM 的网络设置为“与我的 Mac 共享”NAT 并使用 DHCP。分配的地址是172.16.249.128
使用 VPN不是连接后,我可以从主机访问客户机的服务。例如,访问 Windows VM 上的 Web 服务器。
但是,一旦我连接 VPN,我就无法访问虚拟机了。从虚拟机内部,我可以访问 WAN,但无法从 VPN 访问任何内容。更糟糕的是,断开 VPN 连接后,我仍然无法访问虚拟机。重新启动 Fusion 的服务不起作用,我最终不得不重新启动 Mac。
Cisco 配置由我们公司的 IT 部门提供。他们建议将其设置为拆分隧道:10.0.0.0/8
,,194.xx.xx.0/21
部分范围192.168.0.0
-> 隧道,其他任何范围 -> 默认路由(通常是互联网)
我已经准备好了一堆有类似问题的 fusion 社区帖子,但据我所知,它们都已在 fusion 12.2.3 中得到修补。当然,在 Apple 更改为 NetworkExtension 框架之前,所有这些都可以正常工作。
关于如何实现这个功能,我有什么想法吗?
答案1
如果您的本地网络是10.0.0.0/24
,则 Cisco VPN 似乎正在捕获此信息,并通过隧道路由所有传出流量(10.0.0.0/8
包括10.0.0.0/24
)。当 VPN 隧道启动时,从您的 Mac 发往本地网络的所有流量都应该通过 VPN 隧道。您可以通过激活 VPN 并尝试访问网络上的其他内容(可能是打印机?)来检查这一点。我预计连接将失败。
由于172.16.249.128
Fusion 用于虚拟机的 位于172.16.0.0/12
由RFC-1918人们会认为它不会受到 VPN 隧道的影响。但是 Fusion 必须在您的机器上设置一条路由规则,规定发往 的流量172.16.249.128
需要通过 NAT 转换为 中的本地 IP 10.0.0.0/24
。由于此范围由 VPN 隧道捕获,因此流量将通过隧道进行路由。
至于为什么在隧道被拆除并且 AnyConnect 客户端已退出后这种行为仍然存在......嗯,这是一个很长的故事。思科在 AnyConnect 客户端退出时清理路由的工作做得很糟糕。
可能的解决方案:将本地子网移至该分割隧道捕获的范围之外。例如,您可以将家庭网络172.16.0.0/24
和 NATted VPN 网络设置172.16.1.0/24
为 。我希望一切都能顺利进行,并且您还可以访问您的(打印机?或其他设备)!
要确认上述内容正确,请执行以下操作:
- 重启电脑,发布结果
netstat -rn
- 启动 Fusion VM,发布结果
netstat -rn
- 启动 AnyConnect 并建立隧道。发布结果
netstat -rn
- 退出 Any Connect 并发布结果
netstat -rn