NordVPN 正在开源许可下发布其三款产品
VPN 提供商NordVPN最近通过一篇博客文章宣布发布开源 Linux 客户端、Libtelio 网络库和 Libdrop 文件共享库。
Linux 客户端提供了一个命令行界面,用于管理与 NordVPN 服务器的连接,允许您根据所需位置从列表中选择服务器,更改协议设置,并启用终止开关模式,该模式会在与服务器 VPN 的连接断开时阻止网络访问。
对于 NordVPN 的新手,您应该知道这是 Nordsec 公司提供的 VPN 服务,带有适用于 Microsoft Windows、macOS、Linux、Android、iOS 和 Android TV 的应用程序。
NordVPN 通过远程服务器路由流量,从而隐藏 IP 地址并加密所有传入和传出数据。 对于加密,NordVPN 一直在其应用程序中使用 OpenVPN 和 Internet Key Exchange v2/IPsec 技术,并且还引入了其专有的 NordLynx 技术。
NordLynx 是一个基于 WireGuard 协议的 VPN 工具,旨在获得比 IPsec 和 OpenVPN 隧道协议更好的性能。
适用于 Linux 的 NordVPN
该Linux客户端支持NordLynx(基于WireGuard)和OpenVPN协议。它使用iptables修改防火墙设置,使用iproute进行路由,使用tuntap建立隧道连接,并使用systemd-resolved进行DNS名称解析。
Libtelio 库包含典型的网络功能,并提供了一种由用户系统组成的 MeshNet 虚拟网络实现,用于用户系统之间的通信。MeshNet允许您在设备之间建立加密隧道,并基于这些隧道创建一个独立的本地网络。
我们将这些产品开源,以表明我们对透明度和问责制的承诺。 我们需要编程社区的意见和审查,并向他们表明我们对自己的软件有信心。
这一步也强调了我们对合作进步的坚定信念。 网络安全和应用程序开发社区充满了才华横溢的编码人员和渗透测试人员,他们可以为我们的应用程序带来自己独特的视角。
与 VPN 不同,Meshnet 中的连接不是在设备和 VPN 服务器之间建立的,而是在终端设备之间建立的,终端设备也作为节点参与路由流量。
对于整个 MeshNet 网络,您可以定义一个公共服务器来与外界交互(例如,如果传出节点位于用户家中,那么用户从连接的设备连接到什么行程和地点都没有关系对于 MeshNet,对于外部服务,网络活动看起来像这样,就好像用户是从他们的家庭 IP 地址连接一样)。
开源 Libtelio 是一个特别重要的步骤,因为该代码构成了我们所有 NordVPN 应用程序的支柱,而不仅仅是我们的 Linux 客户端。 将这些材料交到 Linux 社区(目前活跃的最强大的开源社区之一)手中,可以鼓励有才华的编码人员和开发人员检查我们的代码并改进我们的服务。
Wireguard 的各种实现可用于加密 MeshNet 上的流量。 MeshNet 中的 VPN 服务器和用户节点都可以用作出口节点。
该库提供可配置的数据包过滤器来限制网络流量,并提供基于 DNS 的服务来确定主机。通过发布的库,您可以在应用程序中构建自己的 MeshNet 网络。
Libdrop 库提供了一系列功能,用于组织用户设备之间的安全文件共享。它支持通过 MeshNet 或全球网络直接发送和接收文件,无需第三方服务器。
最后,如果您有兴趣了解更多信息,可以在以下链接中找到详细信息。
您应该知道,客户端代码是根据 GPLv3 许可证开源的。开发过程中使用了 Go、Rust、C 和 Python 等编程语言。支持的发行版包括 Ubuntu、Fedora、Manjaro、Debian、Arch、Kali、CentOS 和 Raspbian。