编辑:根据下面的答案,问题是错误的。问题不是由于端口转发,而是首先尝试通过我们的公共 IP 访问本地网络上的服务器。看来您只能使用支持NAT 环回(或“发夹”)的路由器来执行此操作,这是一个非常模糊的功能,通常很难确定您是否拥有它。
这篇 MikroTik wiki 文章帮助我理解了这个问题(虽然我无法证明它的准确性......)
我有一个个人网站,它托管在我放在鞋柜里的服务器上。我已将我的域名配置为指向我家庭网络的公共 IP 地址,并在路由器上设置了端口转发,以便将请求转发到服务器。
一切都按预期工作,除非我在家里的 Wi-Fi 上。也就是说,当我在朋友的地方或连接到我的移动热点时,我可以在浏览器中访问 https://<my-domain>.com,并且它工作正常。我可以ssh <my-domain>.com
,这也很好用。我什ssh <my-public-ip-address>
至可以,这也有效。
但是当我使用家庭 Wi-Fi 时,它根本不起作用。网页只是不断尝试加载,直到超时(没有 DNS 错误)。与 ssh 相同。我想最大的谜团是它ssh <my-public-ip-address>
不起作用(虽然自然而然地ssh <my-server's-LAN-ip-address>
工作正常),这让我相信路由器没有对来自本地网络的请求进行端口转发。
关于如何更好地诊断问题的任何提示?我已经和我的 ISP (Spectrum) 通了十几次电话,但他们没有给我一个明确的答案。当我尝试 ssh-ing 到我的公共 IP 地址时,有什么方法可以确定我的超时请求被发送到哪个设备?或者有什么直接的解决方案?
希望这为您指明了正确的方向。当您在家庭网络上时,您不需要端口转发。取决于您使用的防火墙。您可以进行重定向,仅将流量重定向到服务器,或者仅使用内部 DNS 来提供服务器的内部 LAN IP。我从来没有让重定向正常工作。
当内部 LAN IP 尝试访问内部 IP 时,某些防火墙将允许重定向到 IP。有些人认为这是一个安全风险,不允许这样做。大多数(如果不是全部)不允许在循环中路由。以广域网和返回广域网为例。
如果可能的话,也可以在路由器中,或者如果您正在运行 DNS 服务器,您只需为该主机添加一条记录即可解决您的问题。对于调试: nslookup 可以提供帮助 nslookup .com <private IP address will give you the local IP. 而 nslookup .com 会给你另一个。
您要问的 ISP 超出了他们的工作范围。编辑:抱歉,我在防火墙中看到它称为 NAT 反射。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句