我建立了一个服务器(vps),它扮演我的网关角色。我的整个个人网络都通过wireguard 连接在后面。每个想法都很好,我或多或少地遵循https://openbsdrouterguide.net和 pf 文档。
我现在的问题是:我希望我的网关使用wireguard通过protonvpn与互联网(我的个人网络除外)通信。我在其上构建了一个新的 wg 界面,带有质子配置,它显然运行良好。但我不知道如何在外出之前通过质子接口(wg1)将我的私人局域网(wg0)的传出流量(到互联网)传递。
是路由问题还是 pf 规则的东西?
如果您能给我一些提示,请提前致谢。
首先,您需要确保
wg1
是 VPS 上的出口接口(即,所有到互联网的流量都将在该接口上流出。这可以通过将远程端设置wg1
为默认网关来实现,使用route
。如果 VPS 有其他接口(和网关),您可能想要更改wg1
的优先级。route
也将有助于确保一切按预期工作:route -n show
检查路由表并route -n get <some_external_ip_address>
检查数据包将通过哪些接口离开机器。然后,您需要使用 PF将传入流量(即从
wg0
) NAT 到wg1
on
/etc/pf.conf
(请不要盲目复制粘贴,并根据您的情况进行调整)。我实际上会分别尝试每个步骤:首先简单地尝试设置 NAT 并查看 VPS 是否充当网关,而不使用 ProtonVPN。然后禁用NAT,将ProtonVPN设为默认网关,查看VPS是否默认通过它访问互联网。然后最后把这两件事联系在一起。
另外,请注意,在远程机器上更改路由表和 PF 规则是一种将自己锁定在外的久经考验的方法。我们都去过那里。控制台访问是可取的。
非常感谢泽。它有很大帮助。我不知道路线得到!应该阅读更多手册页:o 我不确定我有一个“安全”的配置,但它可以工作!如果它可以帮助别人,我会给出一些步骤。在 vps 服务器上安装两个 wg 接口后:
将默认路由更改为 wg1 (protonvpn) 接口的 ip。所有传出流量都将通过 wg1。
添加带有目标 protonvpn 端点的路由(您放入 wg1 作为端点的那个)与网关原始 ISP 提供商网关。这允许将 protonvpn 端点与您的 Internet 连接接口连接。
在私有局域网中添加目的地您的计算机外部 IP 和您的 ISP 提供商的网关!确实,我的私人局域网 wg0 不应该通过 protonvpn 进行通信,否则它会弄乱一切,因为通信到达我的 vps IP 并通过 protonvpn 出去......这对我来说是必要的,也许还有其他选择?因为我被动态IP卡住了。对于 wg 来说,可以使用 keep alive 选项。但是对于路由表,我应该编写脚本吗?我应该使用 pf rdr-to 吗?
在 pf 中添加翻译规则(也传入 wg0 和 wg1):
第3点有什么想法吗?