双重VPN (OpenVPN)

双重VPN (OpenVPN)

我正在尝试在两台 Debian 8 上使用 openvpn 2.3.4 设置双 VPN。假设我有这个“图表”:

客户端 -> A(VPN 服务器 1) -> B(VPN 服务器 2)

接口:

  • 在 A 上:具有公共 IP 和 tun0 10.8.0.1 的 eth0
  • 在 B 上:具有公共 IP 和 tun0 10.8.1.1 的 eth0

客户端与 A 以及 A 与 B 之间的连接分别有效。此外,每当服务器 A 连接到服务器 VPN B 时,我都无法连接到服务器 A。

我的猜测是,我需要在 A 上有第二个接口,以便:

  1. 客户端将其网络接口绑定到 tun0,并使用 A 发起的 vpn 连接
  2. 服务器 A 有一个接口 eth1,用于服务端 VPN 部分,并通过 openvpn 客户端连接到具有接口 eth0 的 vpn 服务器 B
  3. 服务器 B 管理来自 A 的连接,因此也管理来自客户端的连接

我的问题是:我在这里想的正确吗?除了理论之外,我还没有找到有关配置双 VPN 的任何实际解释...

另外,是否可以将一个接口(在 A 上)“拆分”为两个新的虚拟接口(例如 eth0:0 和 eth0:1)并按照之前描述的方式使用它们来替代 eth0 和 eth1?

谢谢您的帮助 !

编辑1: 为了回答 qasdfdsaq 并使我的问题更清楚,我想要:客户端通过 VPN 隧道从 A 连接 -> A 通过 VPN 隧道连接到 B -> B 管理客户端连接

最后,客户端应该在互联网上拥有服务器 B 的 IP。

编辑2: 我认为我实际上可以这样总结我的问题:A 和 B 是 Debian 8 服务器,其中 B 正在运行 openvpn 服务器。A 有一个带有公共 IP 的网络接口 eth0,我可以在该接口上进行 ssh。我 ssh 到 A 并启动 openvpn 客户端。

A 通过隧道正确连接到 B,并且可以通过 B 访问网络,我无法再 ssh 到 A(因为我猜想所有,也就是这里唯一可用的接口,都绑定到了 VPN 连接。

有没有什么办法可以解决这个问题?

答案1

我的猜测是,我需要在 A 上有第二个接口,以便:

  1. 正确。您可以通过在 VPN 配置文件中添加以下内容来指定 TUN/TAP 接口的名称: dev tapXdev tunX

  2. 在客户端使用:no bind选项或通过添加到服务器来指定其他端口:port 119X并添加到客户端remote address:119X

  3. 启用 IP 转发@服务器 1 和 2。

  4. 设置路由,网络的每个部分都必须知道子网的存在。

另外,是否可以将一个接口(在 A 上)“拆分”为两个新的虚拟接口(例如 eth0:0 和 eth0:1)并按照之前描述的方式使用它们来替代 eth0 和 eth1?

我完全没有意识到这一点。

答案2

我在这里的帖子中详细介绍了如何制作双 VPN: http://www.optionull.com/2017/01/29/routing-traffic-through-openvpn-multiple-hops/

我使用的设置是:

  1. 端点打开到服务器 A 的隧道(tun0)。
  2. 端点在 tun0 内打开到服务器 B 的隧道(tun1)。
  3. 所有流量都通过 tun1 路由到互联网。

相关内容