你可以在没有访问路由器的情况下强行转发端口吗?UPNP可能已关闭?

时间:2013-11-07 12:51:35

标签: portforwarding

我想在我无法访问的路由器上为我的网络服务器端口转发端口。我非常怀疑UPNP是否已启用。

2 个答案:

答案 0 :(得分:1)

实际上,你可以(某种程度上)

它有点复杂,不会一直有效,但这是它的工作原理:

假设:

  

RouterA,公共IP 1.2.3.4

     

PC1私有ip a.b.c.d(路由器A后面)

     

RouterB,公共IP 5.6.7.8

     

PC2私有ip e.f.g.h(路由器B后面)

现在,给定一个IDEAL解决方案(即没有PAT)...

步骤A:

从任何端口上的PC1发送任何消息(本例中为10000)到RouterB的公共IP(4.5.6.7)。这将注册a.b.c.d:10000 - >路由器A的NAT和PAT为4.5.6.7:10000。 RouterB将丢弃此数据包(正如预期的那样,因为它未被请求)。

步骤B: 同时,在同一端口(10000)上连续从PC2向路由器A(1.2.3.4)的公共IP发送数据包。这将注册egf.h:10000 - > RouterB的NAT和PAT上的1.2.3.4:10000。

步骤C:

现在,这就是魔术发生的地方:

PC2不断向RouterA发送数据包,从而在RouterB中保持“漏洞”打开,以便回复响应。当PC1将其单个数据包发送到RouterB时,它将作为响应出现在RouterB中,因此将被转发到PC2。一旦PC2收到此“响应”,请确保再发送一个数据包并停止发送连续数据包。最后一个数据包将作为PC1的“响应”并通过步骤A中创建的“漏洞”。瞧!你现在有NAT横向。您只需每隔一分钟左右发送一个数据包,以保持“洞”打开。

注意:这仅适用于UDP,因为它是无连接的(丢弃的数据包没问题)。

现在几乎所有路由器都使用PAT,所以你必须“猜测”对大多数路由器“响应”的端口将进行+ -10的偏移(ieabcd:10000 - > 5.6.7.8:10010)。

只需在该范围内尝试一些(-10到+10,直到得到回复)

其余的路由器在PAT上是随机的。如果是这样,你就搞砸了...尝试另一个方向(即从另一个方向开始连接)。如果失败了,你就无法联系......抱歉)

答案 1 :(得分:0)

根据我的理解,你有一个运行需要转发内容的网络服务器,以及一个你无法访问的路由器端口;你想连接这两个。

我非常怀疑有办法做到这一点,如果你只有sudo访问你的路由器,你可以使用iptables重定向