![为什么我无法重定向这个无线路由器上的 TCP 端口?](https://linux22.com/image/544258/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E6%97%A0%E6%B3%95%E9%87%8D%E5%AE%9A%E5%90%91%E8%BF%99%E4%B8%AA%E6%97%A0%E7%BA%BF%E8%B7%AF%E7%94%B1%E5%99%A8%E4%B8%8A%E7%9A%84%20TCP%20%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
我正在配置路由器以将 TCP 端口 5900(是的,这是用于 VNC)重定向到网络上的特定 IP 地址。以下是我所拥有的:
从同一网络上的本地计算机,我可以telnet
顺利访问 192.168.1.64(端口 5900)。然而,当尝试telnet
使用外部 IP 地址连接到计算机(端口 5900)时,它不起作用。(连接超时。)
如果有帮助的话,路由器是 Gigaset SE567。
答案1
您遇到了发夹式 NAT 问题。问题如下:
- 您的客户端打开与 [externalIP]:5900 的连接
- 您的网关将目标地址转换为 [InternalIP]:5900
- 您在 [internalIP] 上的服务器看到来自 [InternalIP-2] 的连接,并向 [InternalIP-2] 发送 ACK
- 您的客户端收到来自 [InternalIP-2] 的 ACK,而不是预期的来自 [externalIP] 的 ACK,因此将其丢弃。连接从未建立。
网关需要足够智能,能够翻译内部源地址到自身,以便它能够处理正确的转换。消费级路由器通常不支持此操作。通常的方法是仅在内部连接时使用内部 IP,或者使用拆分 DNS 配置。