如何将特定端口上的非本地传入连接路由到我的计算机的本地网络适配器而不是 VPN?

如何将特定端口上的非本地传入连接路由到我的计算机的本地网络适配器而不是 VPN?

我有一台运行 macOS 10.14 的 Mac,它连接到 VPN(使用 OpenVPN),VPN 网关是所有传出流量的默认网关/路由。这导致我无法从任意外部 IP 地址连接到 Mac 上的任何服务,即使我在路由器上正确设置了端口转发。(不过,与 Mac 位于同一本地网络中的其他系统可以连接到其服务。)

有没有什么方法可以配置,以便来自特定端口上的非本地 IP 的传入连接将被路由到我的 Mac 的本地 IP / 物理网络适配器,而不是通过 VPN?

我愿意接受涉及更改我的 Mac 上的配置的解决方案,例如使用静态路由或 pf,或者更改我的路由器上的配置。例如,如果有某种方法可以配置我的路由器以将此端口上的传入流量转发到我的 Mac,但将该连接的源 IP 更改为路由器的 IP,我认为这会起作用。

答案1

如果有某种方法可以配置我的路由器以将此端口上的传入流量转发到我的 Mac,但将该连接的源 IP 更改为路由器的 IP,我认为这可以解决问题。

在我看来,这确实很难看,但确实应该很容易做到。源 IP 转换是通过常规 SNAT(伪装)完成的,路由器已经将其用于所有出站数据包,只是这次需要将其应用于入站流量。

这取决于你的路由器的 UI 是否让你为除常规出站流量以外的任何其他流量配置 SNAT,但基于 iptables(OpenWRT 或 RouterOS)或 nftables 或 pf 的任何东西都具有该功能。

通过 macOS 实现特定源路由的答案pf通常是一个更好的解决方案。

或者,如果路由器(而不是 macOS 本身)是 OpenVPN 客户端,那么您可以将现有的“Linux 策略路由”答案应用于它。

相关内容