我有一个与 DDNS 关联的域名。它指向我家,我有三个系统正在使用默认端口和另外两个端口运行 Web 服务器。我以前用的是 AT&T,这从来都不是问题,但现在我改用 Charter,似乎没有在不修改客户端的情况下在内部正确解析域名。
所有端口都已正确转发,我可以在外部网络上看到它,所以这不是问题。我有这么多使用这些系统的设备,以至于尝试直接修改它们变成了一场噩梦。
过去两天,我一直在谷歌搜索各种方法,但无法找到解决方案。我知道我需要某种 DNS 服务器解析,但不确定如何设置一个既不会干扰又允许我为所有三个系统使用相同域的服务器。
我先将路由器的 DNS 地址更改为 Google,然后再更改为 OpenDNS,但这并不能解决问题。
如能提供任何帮助我将非常感激。
答案1
最有可能的是您的 NAT 网关没有正确执行 NAT 环回(又称 NAT 发夹)。看看是否可以在 NAT 网关上启用此功能。如果不行,看看是否可以在路由器上运行开源路由器固件(如 OpenWrt)。如果这不起作用,请购买已知可以正确执行 NAT 环回的路由器,并将其用作 NAT 网关,而不是 ISP 提供的盒子。
我猜测当您切换 ISP 时出现此问题的原因是您使用 ISP 提供的盒子作为您的 NAT 网关路由器,并且也许您的 AT&T 盒子正确执行了 NAT 环回,但您的 Charter 盒子却没有。
您的 DDNS 将您的域名指向路由器的外部/公共/WAN IP 地址。这意味着,当路由器的内部/私有/LAN 端的客户端尝试连接到该地址时,您的路由器必须足够智能,能够意识到此数据包需要对其进行出站 NAT,然后对其进行入站 NAT,然后发送到您的内部服务器。服务器对客户端的回复也是如此。这种必须对同一数据包执行两种 NAT 的想法称为 NAT 环回或 NAT 发夹弯,因为数据包必须进行“发夹弯”并直接循环回到路由器,再直接循环回到私有 LAN。许多住宅宽带网关都是廉价的垃圾,无法正确执行 NAT 环回。