我有一个需要使用 TCP 中继的场景。在我开始写一些自定义的东西之前,我想看看是否有人知道可以为我做这件事的现有软件。
我在不同的网络上有 2 台无法相互连接的设备。我们称它们为网络 A 和 B。这些设备需要通信,它们可以通过网络 C 上的“中间人”中继来实现。A 可以连接到 C,B 可以连接到 C。C 不能连接到 A 或 B .
A -> C <- B
Run Code Online (Sandbox Code Playgroud)
思路如下:
有没有现有的工具可以做到这一点?
如果您的中继机器运行 Linux 或任何类似 UNIX 的操作系统,您可以使用socat
(http://www.dest-unreach.org/socat/,它作为软件包包含在许多 Linux 发行版中)。最简单的形式是,您可以通过以下方式启动中继:
socat TCP4-LISTEN:12345 TCP4-LISTEN:54321
Run Code Online (Sandbox Code Playgroud)
(其中12345
和54321
是服务器侦听每个连接的端口)。其中一个客户端连接一个端口,另一个客户端连接另一个端口,然后双向交换数据。如果一台机器在另一台机器连接之前发送数据,则数据会被缓冲并在连接后发送。
另请参阅此处:socat connect-connect“代理”两个入站 TCP 连接以公开受防火墙保护的服务?。
归档时间: |
|
查看次数: |
3661 次 |
最近记录: |