有没有办法克服TCP / IP应用程序上的路由器端口转发?

时间:2009-07-09 10:39:53

标签: tcp router portforwarding

我需要通过TCP / IP连接到计算机我有外部IP但没有端口转发我无法连接到服务器。

有没有办法配置服务器接受服务器定义的外部IP和端口上的连接而不配置路由器? (emule如何做到这一点?或其他对等应用程序?)

4 个答案:

答案 0 :(得分:3)

您需要澄清情况。目标计算机是否在执行NAT的路由器后面?

如果是这种情况,答案是否定的。

服务器无法接受外部IP上的连接,因为外部IP是路由器的IP,并且服务器只能接受路由器转发到它的连接,因为没有到服务器的直接路径。

然而,有一些方法可以避免由NAT引起的这类问题。它们通常涉及NAT后面的计算机进行出站连接,然后用于通信。参见例如

http://en.wikipedia.org/wiki/Hole_punching

另一个答案中引用的通用即插即用也可能允许这样做。

答案 1 :(得分:2)

理想情况下,您希望让NATed客户端启用连接,但如果不可能,则您需要查看STUNUPnP

STUN是一系列工具和协议,允许您通过NAT打孔。它可能需要非NAT服务器的合作。 这可能会失败,具体取决于NAT实现

UPnP是NAT路由器的协议,可以允许客户端动态转发所需的端口。并非所有NAT路由器都会支持这一点,尽管大多数现代路由器都可能会支持。

答案 2 :(得分:0)

我认为你需要研究通用即插即用:

http://en.wikipedia.org/wiki/Universal_Plug_and_Play

答案 3 :(得分:0)

基本上,您需要在此计算机上启动一个程序来启动连接。这就是FogCreek CoPilot,LogMeIn等程序允许远程管理NAT路由器后面的机器而无需配置路由器。