通过 OpenVPN 连接到 VPN 的计算机的白名单功能

通过 OpenVPN 连接到 VPN 的计算机的白名单功能

我现在的情况是:

  • 家庭网络带有路由器和一些设备,包括一台计算机(Raspberry Pi),我想将其连接到商业 VPN 提供商,但我希望远程访问。
  • 路由器中转发了几个端口(例如 22),以便我可以根据自己的需要使用计算机
  • 路由器公网IP例如为89.11.12.13
  • 计算机通常可以通过 HTTP 远程访问

我无法完全解释以下内容:

  • 在我的本地网络之外,如果计算机连接到 VPN,当我连接到 89.11.12.13:22 时,我无法访问计算机(足够公平)。
  • 在我的本地网络中,如果计算机连接到 VPN,当我连接到 89.11.12.13:22(与其他计算机)时,我可以访问计算机

为什么当我在本地网络中使用公共 IP 时可以访问计算机?(这很明显吗?)

我已向 VPN 服务支持人员询问如何启用白名单功能(在他们的 Windows 应用程序中可用),但手动 OpenVPN 连接无法使用该功能。他们建议我使用类似以下方法修改路由表:

route add IP gw gatewayIP

我尝试过,但没有成功。有什么建议吗?

我从这两个问题中找到了一些解释,但我仍然不清楚:

答案1

这是正常的,因为您有用于回复本地局域网中主机的子网路由。

但是对于来自互联网的连接,回复将由默认路由定向,当您连接到 VPN 时,该路由会通过 VPN 隧道将流量路由到 VPN 服务器。VPN 服务器在将流量转发到互联网时基本上必须执行源 NAT。因此,即使允许回复流量到达连接主机,它们也不会被识别为来自路由器的回复,而是来自 VPN 服务器的“未知”传入流量。因此,无法建立连接。

解决方案是将带有 SSH 端口的流量标记为来源使用 iptables 规则的端口并对ip rules它们执行策略路由(通过使用原始默认路由的另一个路由表,并路由到您的路由器,并查找那些标记的流量)。

相关内容