如何在 Linux 上设置专用 NordVPN 路由器和网关?

如何在 Linux 上设置专用 NordVPN 路由器和网关?

问题是这样的:nordvpn 唯一官方支持的路由器配置是使用静态配置文件和 openvpn。

那对我不起作用。

问题:使用 Linux,如何设置一个 NordVPN 路由器/网关来允许使用动态连接、nordlynx 以及本机 NordVPN 应用程序中可用的任何其他选项?

答案1

完全公开,这本质上是我在这里提供的答案的重复:在我的 Raspberry Pi 上设置 NordVPN 网关

现在,言归正传。

我不喜欢被告知我只能使用一个功能,如果我只使用一个预先选择的设置配置,特别是当基础设施支持并提供一个工具,允许在任何给定时间动态选择最佳可用路径时苍蝇。

我在互联网上找到的选项都共享一个通用的仅限 OpenVPN 的解决方案。起泡沫,冲洗,重复。

目前普遍接受的解决方案如下:

选择单个服务器。下载该单个服务器的静态配置文件,该文件仅适用于较差的协议。完成不必要的复杂设置和配置过程。最后,请祈祷所选服务器能够随着时间的推移继续一致地执行,或者当性能一次又一次下降时再次重复该过程............为我工作,所以我开始解决这个问题。对于那些感兴趣的人,我相信我已经解决了“dynamic-nordlynx-whole-network-router”问题。

我的解决方案: 更新于 2024-04-13删除了错误的 mangle 规则

它归结为 3 条 iptables 规则。由于它使用本机 Linux 应用程序,因此它可以使用所有可用的功能。这意味着您可以告诉要连接到哪台服务器,或者让它动态连接到您选择的类别中当前最好的服务器,例如 p2p、onion 等。自动连接有效。我想你应该已经明白了。使用 OpenVPN 协议可能会起作用,但我还没有尝试过,因为放弃 OpenVPN 是我这样做的部分原因。 Killswitch 始终处于打开状态,并且无法通过此设置禁用。

iptables 规则才是真正的关键。我们都知道转发流量的 3 个基本规则,但您必须使用“nordlynx”作为 WAN 接口。

$ iptables -t nat -A POSTROUTING -o nordlynx -j MASQUERADE
$ iptables -A FORWARD -i <LAN> -o nordlynx -m state --state RELATED,ESTABLISHED -j ACCEPT
$ iptables -A FORWARD -i <LAN> -o nordlynx -j ACCEPT

设置为面向 LAN 的接口。

我已将其部署在多个 Proxmox 虚拟机和各种消费者和企业设备上的 lxc 容器上。我确信这可以很容易地适应 pi。如果有时间的话我可能会挖一个来尝试一下。我当前的配置是在 Proxmox 上作为 lxc 与 pihole lxc 和 pfsense 虚拟机一起在具有 4 个网卡的 N100 sff 计算机上运行。此设置明显比 OpenVPN-on-pfsense 组合更快。尽管它仍然存在,但已被绕过。保留作为备份选项以防万一。

         internet
             |
           modem
             |
          Proxmox
             |<---physical port
************ | ************
*          * | *          *
*       NordVPN lxc       *
*   vmbr---->|            *
*         pfsense   vmbr  *
*          * | * \<----   *
*          * | *  pihole  *
************ | ************
   |         |        |<---physical ports
  LAN      WiFi     Guest

我试图将他的帖子发布到nordvpn subreddit上,但显然我没有足够的业力。

我只是想在力所能及的时候帮助别人。

我的项目和基于 Linux 的路由器的相当完整的文章可以在这里找到: https://github.com/theOtherLuke/nordlynx-router/tree/main

相关内容