我有一个在地址上运行的 Nginx Web 服务器192.168.10.1
。此外,我已将我的域名指向此服务器。此服务器通过公司网络具有公共 IP NAT-d。我可以使用域名从外部网络正常访问我的网站。但是,我无法从服务器本身或通过 LAN 网络(从192.168.10.2
服务器)访问此网站
例如,curl mydomain.example
服务器本身或辅助服务器没有响应192.168.10.2
我实际上可以将该服务器的内部 IP 地址放在两个服务器中/etc/hosts
,并且 curl 可以正常工作。但如果可能的话,我想解决根本原因,有人遇到过类似的情况吗?是什么原因导致了这个问题?
答案1
问题是您尝试使用公共地址从局域网内部访问资源。大多数路由器对此感到困惑。
有几种解决方案(我用过的,可能还有更多):
- 将本地 IP 地址放入 hosts 文件中
- 使用拆分 DNS(如果您有内部和外部 DNS,则可能需要查看)
- 使用路由器上的设置来设置路由规则,以便路由器可以将请求重定向到内部服务器。
您使用哪种方法主要取决于您的网络设置和可用硬件。Hosts 文件是最简单的,但如果您在网络外使用的笔记本电脑也是如此,则必须根据您所在的位置启用/禁用规则。第二个选项仅适用于您已经设置了内部/外部 DNS 的情况,第三个选项取决于您的路由器功能。这是我目前使用的(我的路由器是 Mikrotik)。可能还有更多解决方案,因此您可以查看其他回复或谷歌搜索。