有一种情况我遇到了麻烦:
我们有两个物理位置,地点 A和地点 B。
在地点 A,我已将路由器配置为具有 DDNSplacea.ddns.net,我还为将要使用的服务配置了端口转发到运行它们的特定计算机,为了举例说明,假设我的服务正在使用端口9876。
然后我去了 PLACE B,在那里我通过 placea.ddns.net:9876 访问我的服务,该服务被调用,它可以正常工作。
当我在 PLACE A 时,不会发生同样的情况,每当我调用上述服务时,它都不会加载,最终会给我常见的超时错误。这不可能是防火墙、端口转发或 ddns 问题,因为我可以从 PLACE A 外部毫无问题地访问。
当然,如果我在服务器上将 localhost 调用到端口,或者我使用 ddns 和本地 ip 强制使用 hosts 文件,那么它是可以工作的,但这并不能解决我的问题,也不是一种选择。
每当我从同一网络调用 DDNS 时,问题仍然存在,它都会重定向到,为什么,我做错了什么?
答案1
谷歌“Hairpin NAT”。
您的路由器仅正确处理 WAN 接口上的流量。有几种可能的解决方案 - 但这些解决方案都不是微不足道的,
一个解决方案是运行拆分 DNS - 即将域映射到局域网中服务器的内部地址(可能使用 hosts 文件)。
另一种可能性是获得一个可以进行发夹式 NAT 的路由器。
如果设备不需要在更广泛的互联网上访问,请放弃动态 DNS,并使用静态 DNS 以及连接 LAN 的 vpn 获取内部地址。