有没有办法让 PC 在 LAN/VPN 上时解析本地服务器的 IP,而在不在 LAN/VPN 上时解析外部 IP?

有没有办法让 PC 在 LAN/VPN 上时解析本地服务器的 IP,而在不在 LAN/VPN 上时解析外部 IP?

我的 LAN 上有一个 Nextcloud 服务器(带有外部端口转发以供外部访问),我正在为 Windows 10 PC 集合设置 WebDav 连接,我希望用户在办公室时通过 LAN/VPN 建立 WebDav 连接,但当他们在 LAN/VPN 之外时,则返回到 DNS 解析连接的子域的外部 IP。简而言之,我想根据用户的连接方式有条件地覆盖单个地址的 DNS 解析。我希望这是有意义的。

我正在使用 Sonicwall 作为我们的 LAN/VPN 桥接器,但看起来我唯一的选择是设置一个单独的代理服务器,而我没有这个选项。我查看了 Proxy.pac,但看起来我还需要混合使用代理服务器。我还考虑过某种条件 HOSTS 文件方法,但用户在办公室现场时不会运行 VPN 客户端,因此让 VPN 客户端在活动时交换 HOSTS 文件并不是一个真正的选择。

有谁知道如何解决这个问题吗?如果已经有类似的答案,请随时告诉我。我在搜索中找不到。

答案1

您不需要 DNS 解决方案,也不需要代理服务器:只需在 LAN 中的本地路由器的路由表中添加一个条目,将外部 IP 地址(公共 DNS 查询的结果)指向 Nextcloud 服务器的内部 LAN 地址。

如果路由器是 Windows,则添加持久路由(路由器重启后仍然存在)的示例:

route add -p 192.168.178.2 mask 255.255.255.255 6.7.8.9

如果 Nextcloud 服务器通过路由暴露在互联网上,它已经具有外部 IP 地址(上例中为 6.7.8.9)。
如果它通过端口转发暴露,则需要将外部 IP 添加到其内部网络接口(示例中为 192.168.178.2),以使此路由解决方案正常工作。

答案2

实施 IPv6 并使内部和外部具有相同的地址。

编写一个地址,例如: 2001:db8:a2db:6914::c。由于这是全局唯一的,因此不需要任何 NAT、端口转发或水平分割 DNS。

相关内容