我正在配置路由器以将 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 配置。