![主机操作系统连接到 VPN 后,客户机操作系统失去网络连接](https://linux22.com/image/752203/%E4%B8%BB%E6%9C%BA%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E8%BF%9E%E6%8E%A5%E5%88%B0%20VPN%20%E5%90%8E%EF%BC%8C%E5%AE%A2%E6%88%B7%E6%9C%BA%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%A4%B1%E5%8E%BB%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5.png)
System Configuration:
Virtual Box version: VirtualBox-6.1.6-137129-Win
Host OS: Windows 10
Guest OS: Oracle Linux 8.1 (Virtual Box Guest Additions not installed in it yet)
VPN Software running on Host OS (Windows 10):
Cisco AnyConnect Secure Mobility Client
Version: 4.8.02045
Preferences of VPN Client: Screen Shot Attached
Internet Connectivity on Host OS is through WiFi interface Intel(R) Wireless-AC 9560 160MHz connected to my Home router.
我已经为客户虚拟机(即 Oracle Linux)配置了仅 1 个 NAT 网络接口(默认设置未修改),当主机未连接到 VPN 时,我的客户虚拟机(即 Oracle Linux)能够使用主机网络,即我能够从 Oracle Linux 浏览互联网。
- 当主机未连接 VPN 时,附上 Oracle Linux 的 IP 配置屏幕截图。
- 在主机(即 Windows 10)上执行的 route print 命令的输出也在 VPN 连接之前附加。
现在,我认为我将从主机操作系统(即 Windows 10)连接到 VPN,并且我的客户操作系统(即 Oracle Linux)也应该能够使用配置的 NAT 接口访问相同的 VPN 连接,但是当主机建立 VPN 连接时客户操作系统无法使用任何 VPN 资源和互联网。似乎什么都没起作用。我尝试在 VPN 连接后在 Oracle Linux 机器上进行 wireshark 转储,但 wireshark 中什么也没捕获,一片空白。
- 当 VPN 连接到主机后,附上 Oracle Linux 的 IP 配置屏幕截图。
VPN 连接后,在主机(即 Windows 10)上执行的 route print 命令的输出也附加在主机上。
还附加了 VBox.log 文件
我尝试解决问题的步骤:
- 尝试使用旧版本的 Virtual Box 5.2,但仍然发现同样的问题。
- 尝试使用带有和不带有 VBoxGuestAdditions_6.1.7-137622 的旧版本 Virtual Box 6.1.4,但仍然存在同样的问题。
- 我想安装票证 virtualbox . org/ticket/19336 中提到的 VBoxGuest Additions,但票证中共享的修补 VBoxGuestAdditions_6.1.97-136310.iso 链接已损坏,无法访问。
以下命令也集体并逐个执行,但问题仍然存在:
C:\Program Files\Oracle\VirtualBox> VBoxManage modifiedvm “VM 名称” --natdnshostresolver1 on
C:\Program Files\Oracle\VirtualBox> VBoxManage modifiedvm “VM 名称” --natdnsproxy1 on
C:\Program Files\Oracle\VirtualBox> VBoxManage setextradata 全局 VBoxInternal2/HostDNSSuffixesIgnore 1
尝试在客户操作系统(Oracle Linux)中直接安装 Cisco AnyConnect,它显示已连接但仍然无法访问互联网或任何 VPN 站点。
如果我将 Oracle Linux VM 网络适配器配置为桥接,那么至少我在 Oracle VM 上有互联网连接,当 VPN 连接到 Windows 主机时,但目标是使用与主机系统(即 Windows 10)连接的相同 VPN 连接。
针对此问题的任何帮助都将非常有帮助。
所有日志都可以从此处下载关联。
答案1
我可以通过在客户操作系统中使用与主机操作系统相同的代理设置来解决该问题:
解决步骤:
- 在主机操作系统(Windows 10)中,转到控制面板并在搜索栏中输入“代理”
- 单击配置代理服务器选项,这将打开“Internet 属性”对话框中的“连接”选项卡。
- 单击“LAN 设置”按钮,然后复制“地址”文本框中的链接。
- 现在转到此处的客户操作系统(即 Oracle Linux),然后打开网络设置。
- 单击配置网络代理按钮并选择名为“自动”的单选按钮
- 最后将步骤 3 中复制的 URL 链接粘贴到给定的文本框中。
- 禁用并启用连接,现在 Guest OS 就可以使用主机 VPN 连接了。
答案2
我能够通过以下设置从虚拟机内部获得互联网连接:
- 主机:Mac OS Catalina 10.15.7
- 访客:Linux debian 4.19.0-12
- 在我的主机上,我安装并激活了 Mullvad VPN 应用程序。
- 我在我的 Mac 上使用以太网连接。
- 虚拟盒网络类型为:Nat,适配器类型为Intel PRO/1000 MT Desktop
这是您在 Debian/Linux 机器上所需的配置:
在网络管理器小程序(右上角)中单击连接设置。
您需要将所有内容都设置为“自动”。我之前有一个自定义的 Open DNS 设置,这导致客户机无法解析任何内容。
关闭并重新打开网络连接以使更改生效。
应用此设置后,当您检查第一个选项卡(“详细信息”)时,您会看到 DNS 会使用 mullvad 的SOCKS5代理并且还会为您填充默认路线。
打开终端窗口,您现在可以:
- Ping 8.8.8.8:这意味着你的默认网关路由正在运行
- Ping google.com:这意味着你的 DNS 设置正在运行
答案3
对我来说,在客户虚拟机(在我的情况下是带有 NAT 适配器的 VMware 或 VirtualBox)上至少拥有互联网连接的替代方法是在主机OpenConnect GUI
VPN 客户端而不是Cisco Anyconnect
客户端上使用,因为 OpenConnect 客户端不像 Anyconnect 那样执行如此积极的流量转发。
仅供参考,OpenConnect 支持与 Anyconnect 相同的协议。此外,在主机上运行 OpenConnect 时,我也可以在客户虚拟机上成功运行 OpenConnect 以连接到 VPN,因此我将在主机和客户机上都拥有 VPN。适用于所有托管平台的 OpenConnect GUI 工具列表这里。