有任何分布式/网状/P2P VPN 吗?

有任何分布式/网状/P2P VPN 吗?

我有自己的个人 VPN,用于连接多台设备,这样它们就可以在始终可访问的网络上拥有固定的 IP 地址(只要它们连接到互联网)。这对我来说是必要的,因为我的设备可能在移动中,在不同的和不可预测的网络上(4G 网络手机、大学的笔记本电脑、家里的家庭服务器),而且我有一个需要连接到它们的备份服务器(有时,我也必须这样做)。

我也在考虑安装类似 syncthing 的东西,它也可能受益于更低的延迟和更近的节点。

另外,我很懒,我喜欢用我的智能手机播放/暂停家庭服务器上播放的音乐,虽然它们可能不在同一个网络上(应该在,但并非总是如此)。

这意味着我有一个 OpenVPN 服务器,并且openvpn客户端在每个设备上运行。它们都连接到服务器,并且来自任何两个节点的任何流量都必须通过服务器,而服务器距离相对较远,并且吞吐量非常有限。这意味着延迟和缓慢。当我按下“暂停”按钮时,可能需要长达 10 秒钟才能真正暂停音乐。即使两个节点实际上都在同一个 LAN 上(因为它们通过 VPN 进行通信)。嗯。

理想情况下,应该存在某种方法来创建 VPN,能够找到节点之间的最短路径,并尝试直接连接它们。类似于 Skype 与超级节点合作的方式?

虽然服务器离这里很远,但其中一个节点有一个公共 IP 地址,其他节点可以访问它。它可以充当它们的服务器——即使它不是服务器本身,尽管对于一些节点。

我想我可以做类似的事情来同时运行客户端和服务器,并在该节点上桥接它们,但这看起来不太优雅。这是黑客行为,它使 PKI 变得复杂,它分裂了 VPN。我不喜欢它。

虽然我可以使用像 PPTP 这样的简单 VPN,但它实际上并不能确保通信安全,但我决定不费心配置 Bacula 来加密节点之间的连接,这意味着流量在 VPN 内部是明文的。VPN 封装是仅有的安全性,所以它不应该很弱。但是,任何解决没有保密性的“网状”VPN 的方法都已经是一个好的开始 - 我会确保流量开始通过 SSL/TLS。

这看起来好像其他人也遇到过这个问题,而且现在已经解决了。有类似的事情吗?

也有可能我以错误的方式看待这个问题,但到目前为止,这似乎是确保我始终能够远程连接到我的任何设备的最佳方法,无论我在哪里,或者它们在哪里。

答案1

我不确定它是否完全满足您的需求,但您应该看看 tinc:http://www.tinc-vpn.org/。它与您描述的由中央服务器协调的网状网络非常接近,但我不确定它是否能够成功发现您本地网络中的对等点。

答案2

我发现并使用过的最简单的网状 VPN 是 PeerVPN (http://www.peervpn.net/)。

PeerVPN功能

  • 使用 TAP 设备支持以太网隧道。
  • IPv6 支持。
  • 全网状网络拓扑。
  • 自动通过防火墙和 NAT 建立隧道,无需任何进一步设置(例如,端口转发)。
  • 共享密钥加密和身份验证支持。

配置很简单..您只需编辑一个配置文件,对于基本的网状 VPN,您只需要指定 6 个设置,请参阅只有 1 页的 PeerVPN 教程:http://www.peervpn.net/tutorial/

PSK 加密/认证密钥最多可达 512 位(64 字节)。

到目前为止,我已经在多个远程服务器上设置了 peervpn,它运行良好。此外,它不需要“超级节点”,而在其他网状 vpn 实现中可能会遇到这种情况。

peervpn 中的节点会自动了解新添加到 VPN 的节点,无需更改配置。节点到节点的流量也是直接的,而不是通过某个中央 VPN 集线器。

注意:阅读默认的 peervpn.conf 文件以了解您“可以”利用的许多其他选项。但对于我所说的基本网状 VPN,您只需要设置 6 个选项(VPN 名称、PSK、本地隧道端点 IP 地址、您想要在 Linux 系统上看到/使用的接口“名称”以及用于“该”VPN 的端口号...请注意,您可以在服务器上将 peervpn 用于多个独立 VPN)

答案3

星云于 2019 年底由 Slack 发布,提供类似 VPN 的网状覆盖网络。

尾秤也于 2019 年初推出,使用 WireGuard 作为其数据平面。

零层于 2015 年推出。

对于一些更古老和专有的东西:

答案4

你一定要看看https://mysterium.network/

Mysterium 正在构建一个去中心化的 P2P VPN 和其他工具,让您可以自由浏览互联网、通过共享连接赚钱以及构建抗审查的应用程序。

相关内容