经纪商直连

经纪商直连

是否可以使用具有静态 IP 地址的服务器来代理两个分别位于 NAT 后面的客户端之间的直接连接?

我已使用 autossh 和端口转发来建立连接通过服务器,但是我思考这意味着客户端之间的任何交互都会消耗服务器资源(转发数据包和带宽的计算开销)。我无法亲自测试,因为我目前无法访问其中一个客户端。

我想象发生的事情(我拥有 A、B 和服务器,因此无论哪个客户端先连接,都可以等待另一个客户端连接):

client A -----> server <----- client B

我认为反向隧道方法是这样的:

A sends packet -----> server,
server receives packet,
server sends packet -----> B,
B receives packet

反之亦然。我想要的是:

A connects -----> server (connection stays open until B connects)
B connects -----> server (server tells B about A)
A and B can communicate bidirectionally while the connection stays open

(若断开连接A和B可以重复连接步骤)

我认为这一定是可能的(这难道不是 P2P 协议的工作方式吗?)但我不知道如何设置。

答案1

我已经使用 autossh 和端口转发通过服务器建立连接,但我认为这意味着客户端之间的任何交互都会消耗服务器资源(转发数据包和带宽的计算开销)。

你是对的

有两种工具萨米·卡姆卡尔允许 NAT 后面的两台主机相互通信,普纳特乔纳特。如果您想使用此方法实现您的解决方案,网站上有技巧/技术的描述,否则您可以使用 Samy 发布的工具。

广义上讲,chownat当双方都同意他们想要通信时,它适用于 A<->B 通信;而pwnat当 B 不期望时,它适用于 A->B 通信。如果双方通过服务器共享状态以商定何时打开隧道,则可以使用前者chownat;否则,使用pwnat服务器而根本不需要服务器。

相关内容