1

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

有什么方法可以将服务器配置为在不配置路由器的情况下接受服务器定义的外部 ip 和端口上的连接?(emule 是如何做到的?或其他点对点应用程序?)

4

4 回答 4

3

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

如果是这样的话,答案是否定的。

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

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

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

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

于 2009-07-09T10:45:12.617 回答
2

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

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

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

于 2009-07-09T10:51:24.413 回答
0

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

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

于 2009-07-09T10:44:13.850 回答
0

基本上,您需要在这台计算机上安装一个程序来启动连接。这就是 FogCreek CoPilot、LogMeIn 等程序允许在不配置路由器的情况下远程管理 NAT 路由器后面的机器的方式。

于 2009-07-09T10:45:28.200 回答