如何与主机共享来宾VM的VPN连接

时间:2018-12-01 17:31:37

标签: networking virtualbox vpn

在如何解释如何共享您的无线连接或如何与来宾共享主机的VPN方面,我发现无法找到答案。

我有一个Guest Windows 10 VM(使用VirtualBox),该虚拟机通过主机(也是Windows 10)通过桥接连接进行设置。我之所以使用Bridged,是因为我需要主机能够访问来宾,而来宾也必须能够访问外界。我已经在Guest上安装了VPN软件,该软件可以正常工作,并使我能够从该Guest访问公司网络。 不能在主机上安装VPN软件。。我试图与主机共享来宾VM的网络连接。最终,我希望同一主机上的其他VM能够通过Guest的VPN连接进行连接。但是到目前为止,我只是想让Host使用它,而在此之后,其余的应该直接使用。

在来宾上,我看到以太网1,这是我在VirtualBox中为其配置的网络适配器。我还看到了以太网2,它是VPN软件运行时创建的适配器。我尝试共享以太网1和2,但这似乎结束了VPN连接。我在VirualBox中为Guest创建了第二个以太网适配器。我尝试了共享该连接并在它与以太网1和2之间建立了一个网桥(我都尝试了)。这些似乎都没有奏效,我不确定如何取得进展。以太网3当前是仅主机的网络适配器,因为我认为这应该是我所需要的。

如何从主机和其他VM使用来宾的VPN?

2 个答案:

答案 0 :(得分:1)

在VM上

  • 启用以太网1上的网络共享
  • 添加仅主机网络(以太网3)
  • 为其分配(以太网3)静态IP

在主机上

  • 通过Ethrnet 3静态IP添加到公司网络的路由

答案 1 :(得分:1)

我通过 k010mb0 的步骤进行了大量的反复试验,最后我让我的仅限 Windows 的 VPN 在虚拟机来宾 Windows 10 上工作,并且还可以从我的 Linux (Ubuntu) 主机访问它。

我只会尝试进一步详细说明。我假设你已经在你的 Linux 主机上安装了 virtualbox,你已经创建了一个来宾虚拟机并且你已经在它上面安装了 Windows 10。

1.为您的虚拟机来宾 Windows 设置 NAT 网络适配器

这是必需的,以便您的 Windows 来宾虚拟机可以访问互联网。为此,您在 停止 状态下打开来宾虚拟机的 virtualbox,单击 Windows 虚拟机,单击设置按钮,然后从左侧列表导航到“网络” .然后你需要配置如下:

enter image description here

您在此处看到选项变灰的原因是我目前正在运行我的 virtualbox,但是,如前所述,您应该在停止 VM 的情况下执行此操作。

2.在您的主机上设置仅主机网络

这一步是特定于主机的,而不是特定于来宾的。这就是为什么您从 virtualbox 的全局设置菜单而不是访客的设置(稍后将配置访客)创建此网络的原因。

转到您的虚拟机管理器窗口,单击 File -> Host Network Manager... Ctrl+H。您可能会看到一个屏幕,其中包含一个空的网络列表和一些按钮,其中有一个 Create 按钮。单击它,您将获得第一个网络:

enter image description here

请注意,除了 IP 设置(您可以保持原样)之外,还有一个选项卡用于在这个新网络上配置 DHCP。此 DHCP 用于在来宾虚拟机上分配新网络子网的 IP。您可以保留默认设置,因为无论如何我们都会在来宾操作系统上手动设置网络设置。

3.在您的来宾虚拟机上启用仅主机网络

现在我们的主机 (Linux) 上有了一个新的网络接口,我们可以回到来宾虚拟机,再次处于 stopped 状态,并添加一个新的网络适配器,这次指向我们新创建的仅限主机的网络。

从虚拟机管理器中,选择您的来宾计算机,再次单击设置,转到网络并切换到适配器 2(或 3 或我们之前配置的第一个适配器以外的任何其他适配器):

enter image description here

4.启动您的来宾虚拟机

现在我们可以启动我们的 Windows 10 来宾虚拟机,并通过转到 Network & Internet settings 来验证是否配置了两个网络适配器:

enter image description here

在我的例子中,NAT 网络(适配器 1)显示为 Ethernet(屏幕截图上的第一个网络),仅主机网络(适配器 3)显示为 Ethernet 4。不要介意编号,只需确保您记住哪个 Windows 网络对应于我们从 virtualbox 控制台设置的哪个网络适配器。

5.从 Windows 连接到您公司的 VPN

这一步完全是根据您的需要定制的。只需下载您的 IT 管理员提供的任何客户端、证书、凭据等,并将您的 Windows 计算机连接到您的 VPN。

成功连接到您的 VPN 后,您将在 Windows 设置面板上获得一个新的网络连接。转到 Network & Internet Settings,然后单击 Network and Sharing Center。你会看到这样的:

enter image description here

就我而言,我有两个适配器,EthernetEthernet 4。现在我连接到我的 VPN,我也得到了 Ethernet 3。您可以随时点击网络,然后点击 Details 并从 IP 配置中查看哪个连接是哪个。

6.与仅限主机的网络共享您的 VPN 连接

仍然在我们的 Windows 来宾虚拟机上,我们现在需要与仅主机适配器(在我的情况下为 Ethernet 3)共享我们的 VPN 连接(在我的情况下为 Ethernet 4)。为此,点击来自 Ethernet 3Network and Sharing Center 连接(参见上一步),转到 Properties,然后点击 Sharing 标签:

enter image description here

点击 Allow other network users to connect...,然后选择您的仅主机连接。就我而言,就是 Ethernet 4。执行此操作后,您将收到以下警告:

enter image description here

这实际上表明我们的 Ethernet 4 IP 设置将被搞砸,但没关系,我们会在之后立即修复。点击此处的 Yes

7.修复仅限主机的 IP 设置

如上一步所述,Windows 为我们的仅主机接口设置了一个任意 IP 地址:192.168.137.1。但是,在我们的主机端 (Linux),我们配置了一个 192.168.56.xxx 网络。如果我们保留这些设置,Linux 和 Windows 将无法通信。

让我们从 Ethernet 4Internet & Network Center,点击 Properties,然后是 Internet Protocol Version 4 (TCP/IPv4),然后是 Properties

enter image description here

你在那里看到这个 192.168.137.1 IP?将其更改为 192.168.56.2

8.尝试从您的 Linux 主机 ping 您的 Windows 来宾

让我们回到我们的 Linux 主机,看看两台机器之间的网络设置是否正确。打开终端并输入 ping 192.168.56.2。我们应该得到这样的回报:

$ ping 192.168.56.2
PING 192.168.56.2 (192.168.56.2) 56(84) bytes of data.
64 bytes from 192.168.56.2: icmp_seq=1 ttl=128 time=0.282 ms
64 bytes from 192.168.56.2: icmp_seq=2 ttl=128 time=0.181 ms
64 bytes from 192.168.56.2: icmp_seq=3 ttl=128 time=0.506 ms
64 bytes from 192.168.56.2: icmp_seq=4 ttl=128 time=0.262 ms
^C
--- 192.168.56.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3067ms
rtt min/avg/max/mdev = 0.181/0.307/0.506/0.120 ms

如果没有得到 ping 响应,则需要重复前面的一些步骤。

9.尝试从您的 Linux 机器 ping 一台 VPN 机器

现在选择一个只能从您的 VPN 访问的 IP,让我们尝试 ping 它。通常,您的 VPN 名称服务器的 IP 会响应 ping。

首先尝试从您的 Windows 设备 ping 这个 IP。假设受保护的 IP 是 10.0.0.1

C:\Users\XXX>ping 10.0.0.1

Pinging 10.0.0.1 with 32 bytes of data:
Reply from 10.0.0.1: bytes=32 time=76ms TTL=57
Reply from 10.0.0.1: bytes=32 time=76ms TTL=57

Ping statistics for 10.0.0.1:
    Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 76ms, Maximum = 76ms, Average = 76ms
Control-C
^C

既然我们已经验证了我们的 VPN 连接已在 Windows 上启动并运行,并且 10.0.0.1 可以 ping 通,让我们回到 Linux。

您需要做的第一件事是添加一个路由,以便 10.0.0.1 通过我们的仅限主机的网络,而不是您的标准以太网/wifi 适配器:

ip route add 10.0.0.1/32 via 192.168.56.2

这里有几点需要注意:

  1. 我们在 192.168.56.2 中使用了 Windows IP via不是Linux IP 192.168.56.1
  2. 在此特定示例中,网络掩码为 32。您稍后可能添加的其他路由不一定具有相同的网络掩码。

现在您已经添加了路由,您可以尝试从 Linux ping 受 VPN 保护的机器:

ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=56 time=78.2 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=56 time=79.3 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=56 time=77.1 ms
64 bytes from 10.0.0.1: icmp_seq=4 ttl=56 time=77.0 ms
^C
--- 10.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 76.985/77.896/79.320/0.937 ms

如果您看到与上述类似的 ping 响应,则可以准备庆祝活动。但首先要确保你已经配置了一些最终的东西。

10.在 Linux 主机上设置 VPN 的 DNS 服务器

您可以连接到 VPN 是个好消息,但这并不能使一切正常。您很快就会尝试在您的 Linux 浏览器上打开一个 VPN 站点,并意识到无法将主机名解析为 IP。例如,如果您尝试点击 someservice.internal.mycompany.com,则会收到 DNS 解析错误。

为了解决这个问题,您需要在 Windows 框中打开 VPN 连接,打开 Details 选项卡并复制您在那里看到的 DNS 服务器。然后你必须去你的 Linux 机器并添加这两个服务器。一种方法是为 nameserver 中的每个 dns 服务器添加一个 /etc/resolv.conf 条目,但也可以使用其他方法。

11.在 Linux 主机上设置 VPN 的路由

拥有 DNS 服务器可让您将内部 VPN 域名解析为 IP。剩下的最后一件事是告诉您的 Linux 机器,为了访问这些 IP,它需要通过 192.168.56.2 网关,正如我们之前为测试所做的那样。

您可以通过键入 route PRINT 在 Windows 上打印所有 VPN 路由的列表。

然后您可以使用该信息将相同的路由(或您需要的任何子集)添加到您的 Linux 机器中。