无法使用 FQDN 访问本地服务器...但可以从互联网访问

无法使用 FQDN 访问本地服务器...但可以从互联网访问

我在本地家庭网络上设置了家庭服务器。我通过托管服务提供商注册了域名和网站,并在托管服务提供商处配置了子域 A 记录以指向我的本地网络 IP(例如:server.mydomain.tld)。NAT 和防火墙规则已设置好,因此当我不在家庭网络上时,我可以通过浏览器访问 server.mydomain.tld 上的服务器。此外,还通过 LetsEncrypt 设置了 SSL 证书。总而言之,当我不在家庭网络上时,一切都运行正常。

问题:如果我在家庭网络(与服务器位于同一网络)上,并尝试导航到 server.mydomain.tld,我要么得到:a) 防火墙登录页面,要么 b) 关于自签名证书的浏览器错误(看起来是由防火墙提供的),我可以绕过它,然后... 进入防火墙登录页面

注意:如果我导航到服务器的本地 IP 地址而不是 server.mydomain.tld,那么我就可以按预期访问服务器门户。

我需要在防火墙上配置什么样的路由、NAT 和/或 DNS 规则,以便当我与服务器一起进入家庭网络时,server.mydomain.tld 会直接带我到服务器的本地 IP?

如果您需要更多信息,请告诉我。谢谢!

答案1

如果我在我的家庭网络(与服务器相同的网络)上,并且我尝试导航到 server.mydomain.tld,我要么得到:a)防火墙登录页面,或 b)关于自签名证书的浏览器错误(看起来是由防火墙提供的),我可以绕过它,然后...进入防火墙登录页面

基于 NAT 的“端口转发”的常见问题是不适用于内部。

当客户端和服务器都在同一子网中时尝试使用它根本行不通——客户端的请求会正常通过路由器,但服务器的响应不会,这意味着路由器无法取消 NAT。所以你的路由器根本就不会费心去尝试。

有些路由器对此有一个解决方法,标记为“NAT 发夹弯”或者“NAT 环回”。这还重写了客户IP 地址,使得服务器看起来好像所有 LAN 连接都来自路由器本身。

但一般来说,更好的解决方法是使用本地 DNS覆盖您的 FQDN,以便当您在 LAN 中时,它直接解析为服务器的内部 IP 地址而不是外部 IP 地址。

也许更好的解决方法是将服务器放在自己的 IP 子网,与所有客户端分开。它不必进行物理分段——即使两个子网共享同一个以太网,它也能工作。因为跨子网流量通过路由器,从技术上讲,端口转发可以顺利进行。(也就是说,假设路由器的固件允许您这样做。)

相关内容