如何在没有任何重定向配置的情况下使TCP服务器在路由器(NAT)后面工作

Che*_*ane 11 networking p2p tcp nat

场景如下.我有两台机器A和B:A:客户端(NAT后面)B:服务器(NAT后面)

我希望B能够侦听任何给定的端口,以便A可以通过该特定的TCP端口向B发送数据包并接收任何响应.如果两台机器都不在NAT后面,那么这是一个非常直接的过程.但是,我如何使其工作,以便即使B在路由器后面,它没有他必须改变路由器配置启用一些端口转发等工作...

例如,如果没有用户配置任何东西,像torrent客户端这样的点对点程序如何工作?

Dou*_*der 6

回答Peer to Peer程序的例子,一般来说:有一种称为通用即插即用的技术,NAT路由器可以使用它来允许它们后面的客户端向外部公开端口.这就是bittorrent客户端可以使用的,以便其他客户端可以直接连接到它们.


sea*_*ley 1

代理服务器的替代方案是匹配服务器。匹配器不会代理所有流量,而是仅进行协商,直到对等点可以相互通信。这涉及找到对等点的外部公共 IP 并与每个对等点进行通信,以便防火墙/路由器知道对等点希望进行通信。

这称为打洞,通常必须由媒人而不是同伴自己完成。一旦打通了洞,媒人就可以告诉同伴彼此的情况,他们就可以直接交流。