DSL 路由器上的端口转发不起作用

DSL 路由器上的端口转发不起作用

我使用 BSNL 宽带连接,并提供了可充当许多无线设备的默认网关的 DSL 路由器。我的服务器就是这样的设备之一。我租用了一个静态 IP。这样,到该 IP 的所有流量都会定向到路由器。
但要将请求从路由器转发到我的服务器(使用 wifi 连接),需要端口转发(从这里)。 可以通过转到 部分VIRTUAL SERVER部分来完成 BSNL DSL 路由器的端口转发NAT。 在那里,我已将端口 8080(我的 JBOSS 使用端口 8080)上的所有请求转发到具有内部 IP 地址的服务器192.168.1.7
我能够从服务器连接到互联网(192.168.1.7),通过 wifi 连接到路由器的所有设备都可以相互 ping 通。 但端口 8080 上的流量并未定向到服务器。
这可能是什么原因造成的?

笔记

当我的请求 url 是 时,我可以访问服务器http://192.168.1.7:8080/myapp。但是当我的 url 是 时http://118.XXX.XXX.XXX:8080/myapp,我无法访问它。118.xxx.xxx.xxx 是路由器的公共 IP。

答案1

它无法在局域网内工作。它只能在互联网的其余部分工作。原因如下:

  1. 您尝试从 LAN 机器访问您的公共 IP 地址。

  2. 机器看到该地址在局域网之外,就将数据包发送给路由器。

  3. 路由器将目的地 NAT 到 LAN 机器,但源地址未被修改(仍然是发起请求的 LAN 机器)。

  4. 您的服务器接收请求并向连接源(仍然是 LAN 机器)发送响应。

  5. LAN 计算机收到服务器的响应,但它期待路由器的响应(因为它已连接公共 IP 地址,它必须得到响应公网 IP 地址,而不是服务器的 LAN 地址)。由于回复的源地址错误,因此不被接受。糟糕。

端口转发(重写目标地址)只能从外部到内部起作用,不能从内部到内部起作用。为此,您需要发夹式 NAT,它除了重写源地址外,还重写目标地址。

答案2

许多路由器不允许从本地网络转发到其 WAN 端口的连接返回 LAN(NAT 环回或发夹)。这样,WAN IP 就无法从内部访问,您必须使用不同的地址来联系路由器或端口已转发到的机器,在您的例子中是 192.168.1.7。您可以从外部测试端口转发。对于 Web 服务器,最简单的方法可能是使用代理,例如http://hidemyass.com

如果您想通过域名访问服务器,您将遇到同样的问题。 DNS 服务器会将您引导至公共 IP 地址。 通过编辑本地计算机上的 hosts 文件,您可以让它们指向服务器的本地 IP,并且您可以在任何地方使用相同的地址。

答案3

  1. 检查您是否可以直接访问 8080(使用您的 192.168 IP)
  2. 然后在你的路由器上,将 8080 转发到你的 jboss 服务器 8080,有时路由器本身可能正在监听 8080,在这种情况下,更改你的端口号

答案4

2)

可能是因为您的路由器不支持 NAT 查找。在 LAN 中,您将无法使用外部 IP 访问内部计算机,但外部 IP 在世界其他地方可以使用。

如果你想通过外部 IP 测试网站,那么你可以使用代理。我喜欢 Anonymouse,但你可以在 proxy.org 上从数千个代理中进行选择。

请参阅路由器上的 NAT 环回是否存在安全问题? 以了解关于NAT 查找是否安全。

相关内容