再会,
我有两台计算机位于防火墙后面,没有设置端口转发。这两台计算机需要仅使用出站连接相互通信。
我正在寻找一个可以在服务器上启动并以以下方式工作的代理工具:
- 如果 Alice 想要谈话,Bob 会定期向服务器检查。
- Alice 向服务器发送请求,表示她想与 Bob 交谈。
- 鲍勃与服务器核对并获取爱丽丝想要谈话的信息 - 他接受了。
- 代理服务器为传入的 TCP 连接打开入站端口 8100 和 8200。
- Alice 连接到端口 8100 并等待 Bob 加入。
- Bob 连接到端口 8200。
- HELO 数据包发送给 Alice 和 Bob,表明双方已建立连接。
- 然后连接变为双工转发模式,Alice 可以将数据包发送到端口 8100,然后它们将从端口 8200 转发给 Bob。
- Bob 也可以向端口 8200 发送数据包,这些数据包将从端口 8100 转发给 Alice。
- Bob 断开了连接并且 Alice 的连接也断开了。
我想问一下是否已经有这样的代理协议可用。在编写自己的实现之前,我决定在这里询问是否有可用的解决方案(最好是针对 Linux 的)。
这个想法只是一个简单的数据包转发器,能够将两个入站连接在一起。如果有人能分享任何类似的开源项目的知识,我将不胜感激。
答案1
好吧,让我们将其分成几层,您正在描述 IP 级别的路由器,唯一的问题是数据包到达一个端口并从另一个端口出来,这应该由实现您所描述的协议的应用程序层来处理。
因此,要重现您上面概述的概念设计,您需要一个路由器(任何带有 IP 表的 Linux 机器就足够了)加上一个可以完全按照您的要求执行的网络服务,除非有人已经编程并发布了您所要求的开源程序,否则您需要自己动手。