我得到了一个相当简单的设置,它由 2 个服务器和几个用户组成。
服务器#1,int - >我的应用程序所在的家庭局域网中的服务器,在这种情况下它是nextcloud(带有nginx Web服务器,可通过HTTPS访问)和其他一些东西。这个没有可访问的外部 IP 地址,无法从我的网络外部连接到它,除非...
服务器#2,分机->我的局域网外的服务器,该服务器具有可从世界访问的ip地址。两台服务器都使用wireguard连接而不是那么好的链接相互“链接”(这在这里至关重要,因为我需要尽可能避免通过它传输数据)我认为还值得一提的是我的连接LAN 不通过 ext 服务器路由。(Wireguard 不是默认网关)
在我的家庭网络中,我有一个 PiHole DNS 服务,它覆盖了 cloud.myplace.com,因此它指向我的本地网络 ip(cloud.myplace.com 也是我购买的普通域名,因此可以使用它来自我的网络外部,目前它指向 ext 服务器)
为了从我的局域网外部访问服务器,我计划使用 nginx 代理,它只会在用户和我的服务器之间传递数据。因此,当连接到 LAN 时,我得到了直接的 https 连接,当我在互联网上时,应该通过外部服务器,通过 wg vpn 将连接代理到我的 int 服务器。对我来说最重要的因素是我的本地应用程序在我的本地网络中运行的速度有多快,并且它们完全可以在 WAN 上运行,而无需更改客户端应用程序(从 LAN 到 WAN 的传输对他们来说应该是透明的)
但是这个地方我有点糊涂了……整个计划用本地DNS服务指向本地IP对我来说有点臭,感觉应该可以让nginx自己决定怎么做根据连接的来源路由连接。
创建自己的 DNS 条目是个好主意吗?有没有可能有一天它会咬我?(IDK,因为某些系统/应用程序会覆盖 DNS 或不信任某些系统/应用程序,某些应用程序可以缓存 IP?或类似情况)或者这是一个非常健康的情况,我不必担心任何事情?
如果不是,那么在 LAN 中路由到单个实例的正确方法是什么?例如,如果我可以在远程服务器上缓存一些 NC 数据以便不必通过 VPN 发送所有内容,那将是完美的
希望这对你们中的大多数人来说是“面包和黄油”,并且解决方案显而易见且简单我只是不知道如何找到它:) Br,Bartoszek
这是一个有效的解决方案。
您想要用本地 DNS 覆盖公共 DNS 有几个原因。
1. 服务器在内部,可以通过公共 IP 访问,但由于 NAT 发夹,无法通过公共 IP 在内部访问,但可以通过内部 IP 访问服务器。
在这种情况下,您在本地设置了一个 DNS 条目,这样 url 在任何地方都保持不变,但它在该地方的内部和外部都可以工作(例如,有人有一台笔记本电脑,并且想要在内部和外部访问它。)
2. 服务器在内部,但公众无法访问。
在这种情况下,您将本地 DNS 设置为指向内部 IP 地址,而是否有公共 DNS 条目并不重要。此外,可以使公共 DNS 条目指向一个网页,该网页将提供简短且非描述性的消息,以提醒人们他们无法访问它,除非他们是内部的。(帮助 IT 人员排除故障)
3. 有公共路由,但内部用户应该连接到不同的服务器。
在这种情况下,您将本地 DNS 设置为指向不同的服务器。例如,对于终端服务器集群,外部将指向网关服务器,但在内部,您可能希望连接到不同的集群或管理服务器。
请记住故障排除始终 ping FQDN 并查看它是在内部还是外部回复以找出其问题。例如。您希望 ip 地址在内部,但 ping 会显示外部 ip。