问题是这样的: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