我的 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。