OpenWRT 通过 OpenVPN 隧道从路由器路由 DNS 流量

OpenWRT 通过 OpenVPN 隧道从路由器路由 DNS 流量
  • OpenWRT 23.05.2
  • 路由器:Linksys WRT3200ACM
  • OpenVPN 配置 (NordVPN)
  • NordVPN 有一个我付费的静态 IP(以帮助流媒体服务等不会抱怨使用 VPN)
  • 我有 2 个子网 - 一个直接连接到 WAN,另一个通过 tun 设备连接到 VPN。
  • 我在路由器上使用 AdGuardHome (AGH) 来处理来自两个子网的 DNS 请求。
  • AGH 上游设置为 NordVPN 的 DNS 服务器。

问题:当我在 VPN 隧道外联系 NordVPN 的 DNS 服务器时,它使用与在 VPN 隧道内不同的服务器组进行解析。这意味着,如果我尝试从 VPN 上的设备使用 Amazon Prime Video,它不会让我这样做,因为我使用的是 VPN。如果我手动将 DNS 服务器直接配置到我的客户端上,并将其连接到 NordVPN DNS 服务器,它确实可以工作。

我的工作理论是,使用 AGH 可以从 VPN 隧道外部访问 DNS 服务器,但如果在使用 VPN 时手动配置我的客户端,则可以从 VPN 隧道内部访问 DNS 服务器。

当我使用像 ipleak.net 这样的网站时,我可以清楚地看到使用 AGH 和手动配置客户端的 DNS 服务器解析度是不同的,尽管两者都设置为使用相同的上游 DNS 服务器。

我相信,如果我可以让 AGH 以某种方式通过 VPN 隧道发送 DNS 请求,我既可以保护我的 DNS 请求不被窥探(比如我的 ISP),又可以让它正常工作。

我只是不知道如何设置规则来执行此操作。我确实设置了基于策略的路由 (PBR)(它负责将 VPN 和非 VPN 流量彼此分离)。我尝试设置一条规则以从外部端口 53 触发,但我认为这是错误的 - 我相信它正在寻找到达路由器端口 53 的外部请求,而不是从路由器到端口 53 的外部请求。

我相信有一个可以配置的防火墙规则,但我对 fw4 规则不够熟悉,甚至无法尝试 - 因为我反复了解到,随意弄乱 FW 规则会导致偶尔出现故障。

我希望有人能帮我找到实现这一目标的具体方法。我不可能是唯一一个希望路由器的 DNS 流量通过 VPN 的人。我不希望所有流量都重定向到 VPN,因为我需要端口打开/可用才能转发到我的 LAN 系统,这就是我一开始就走到这一步的原因。

任何帮助都将不胜感激。谢谢。

相关内容