我有一个需要使用TCP中继的场景。 在开始写定制之前,我想看看有没有人知道现有的软件可以为我做这个。
我有两个设备在不同的networking上,无法连接到对方。 我们称它们为networkingA和B.这些设备需要通信,并且可以通过networkingC上的“中间人”中继来完成。A可以连接到C,B可以连接到C. C不能连接到A或B 。
A -> C <- B
这个想法如下:
有没有可以做到这一点的现有工具?
如果您的中继机运行的是Linux或任何类UNIX操作系统,您可以使用socat ( http://www.dest-unreach.org/socat/ ,它作为许多Linux发行版的软件包)。 以最简单的forms,您可以使用类似于以下内容的方式启动中继:
socat TCP4-LISTEN:12345 TCP4-LISTEN:54321
(其中12345和54321是服务器侦听每个连接的端口)。 其中一个客户端连接一个端口,另一个连接另一个端口,然后双向交换数据。 如果一台机器在另一台连接之前发送数据,则在连接之后将其caching并发送。
另请参见: socat connect-connect“proxy”两个入站TCP连接来暴露防火墙服务? 。