这个问题似乎与我突然无法通过外部 WAN IP 地址访问 LAN 中的 Web 服务器但没有什么可以帮助我所以我再试一次。
我有一台路由器,其 WAN 地址为 1.2.3.4,本地网络为 192.168.1.1/24。我有一个在 192.168.1.100 上运行的 Web 服务器。
在路由器设置中,我将管理面板的端口从 80 更改为 81,以免干扰 Web 服务器。然后,我添加了 TCP 80 -> 192.168.1.100:80 的端口转发规则。最后,我将域名 example.com 分配给 1.2.3.4,这样访问 example.com 就可以正确路由到我的 Web 服务器。来自世界各地。
但是,当我尝试从连接到 192.168.1.1/24 的任何设备进入 example.com 时,它不起作用。
我尝试使用 ping 来诊断它,并且域名正确解析为 IP 地址,所以这似乎不是 DNS 问题:
root@linux:~# ping example.com
PING example.com (1.2.3.4) 56(84) bytes of data.
64 bytes from 1.2.3.4.ip4.feromedia.eu (1.2.3.4): icmp_seq=1 ttl=63
此外,traceroute 在路由器处停止:
root@linux:~# traceroute example.com
traceroute to example.com (1.2.3.4), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 0.350 ms 0.256 ms 0.195 ms
2 * * *
3 * * *
4 * * *
我没有在路由器中发现上述问题所建议的 NAT 环回或 NAT 反射设置。我没有在静态路由中配置任何内容,也不记得我做了什么会导致这种情况。
我的路由器是DrayTek Vigor2925。
答案1
您的路由器可能不支持 NAT 环回(又称为 NAT Hairpinning)。升级到售后固件发行版(例如 LEDE),或将您的路由器更换为具有支持 NAT 环回的出厂固件的路由器(例如 Apple AirPort 基站)。
答案2
正如@Spiff 所说,问题可能在于缺乏对 NAT Loopback 的支持。
不过,我已经设法通过路由器配置中的静态 DNS 条目来处理这种情况。在 DrayTek 中,它被称为局域网域名解析功能和 AFAIU,它类似于hosts
机器上文件中的一个条目。
在那里添加192.168.1.100 example.com
条目后,我的路由器开始用 LAN192.168.1.100
地址响应example.com
网络中每个设备的 DNS 查询。因此,尽管我的路由器不支持全局 NAT 环回,但它们仍可以通过域名访问本地 Web 服务器。