我遇到了一个奇怪的问题,这个问题让我困惑不已,即使做了多年的端口转发,我也没有遇到过这个问题。。!我希望这里有人能帮我解开这个谜团。。:)
我的网络配置如下:
我有一个 DSL 调制解调器(由我的 ISP 定制并贴上品牌),它正在接收 DSL 流...它有一个全世界可见的外部 IP,比如 11.22.33.44...该调制解调器启用了 DHCP,有一个内部 IP,即 192.168.1.1...它通过以太网电缆连接到 2 台笔记本电脑...笔记本电脑 1 的 IP 为 192.168.1.2,笔记本电脑 2 的 IP 为 192.168.1.3...
在笔记本电脑 1 上,有两个应用程序正在运行,jDownloader 和 Media Player Classic,它们的 Web 界面分别在端口 8765 和 13579 上...我可以通过打开以下地址从笔记本电脑 2 访问这两个 Web 界面:192.1681.2:8765 和 192.168.1.2:13579...它们的 Web 界面都打开了,这意味着 Web 界面运行良好..
接下来,我现在也想从我的网络外部访问这些 Web 界面,因此我在 PTCL 调制解调器中配置了端口转发,将 8000 到 14000 之间的端口(TCP 和 UDP)上的所有流量转发到 IP 192.168.1.2...我已经通过使用 PortForward.com 的端口检查工具进行测试,验证了端口转发是否正常工作,并且这个网站也是如此:[URL]http://www.yougetsignal.com/tools/open-ports/
当我使用该网站时,如果我在笔记本电脑 2 上运行应用程序,网站会报告端口已打开..如果我关闭该应用程序,网站会报告端口已关闭...这是有道理的,因为在后一种情况下,我的机器上没有任何内容在监听..此外,如果我在调制解调器中禁用端口转发,网站会再次报告端口已关闭...所以,网站的结果似乎没问题......
当我使用 PortForward.com 的端口检查工具时,也会出现同样的情况...所以,到目前为止一切都还好...
现在,问题来了!!...尽管上述工具报告端口转发正在运行,但我无法从网络外部打开 Web 界面...因此,例如,如果我尝试浏览 11.22.33.44:8765 或 11.22.33.44:13579,我的浏览器中不会打开任何内容...但如果我从笔记本电脑 3 本地访问这些 Web 服务器,输入 192.168.1.2:8765 或 192.168.1.2:13579,它们就会打开...
那么问题出在哪里?工具一致报告端口转发正在运行,但我无法从网络外部打开 Web 界面。
还请注意,我已从我的计算机上禁用防火墙,并且还确保上述程序(我试图打开其 Web 界面)中任何指出只接受本地连接的选项都已被禁用...
那么问题是什么...?!有什么想法吗?
答案1
路由器中的 NAT 网关代码无法正确执行“发夹式 NAT”。许多 NAT 网关都无法正确执行此操作。
当内部机器请求连接到 NAT 网关的公共 IP 地址上的端口时,NAT 必须首先执行“出站 NAT”,将数据包转换为要发送到外部主机的数据包,然后意识到 NAT 网关本身是被请求的“外部”主机,然后查看其端口映射表并将该数据包转回并执行“入站 NAT”,将其发送到端口映射的主机。
数据包大部分通过 NAT 发出,然后被直接转回来并送回的这个想法类似于传统发夹弯中的紧密、回折的曲线(类似于道路上紧密的回转转弯被称为“发夹弯”或“发夹弯”)。
可能的解决方案:
- 获取 NAT 网关盒的固件更新以修复此错误。
- 看看您是否可以在 NAT 网关盒中配置这一点。
- 在您的 NAT 网关盒上加载没有此问题或可以配置为不存在此问题的第三方固件发行版。
- 购买没有此问题的其他家庭网关产品,将新的盒子作为您的 NAT 网关,并让您的 DSL 调制解调器充当简单的调制解调器/网桥,而不是 NAT 网关。
- 接受它。你能当您真正位于网络之外时,实际上会连接到您的端口映射服务,因此也许您可以接受无法从网络内部伪造它的事实。