我正在寻找一个工具(在linux下),它允许我设置端到端代理,在一端接受一个端口上的多个同时客户端,使用单个转发数据到另一端连接然后“扩展”另一端的连接以连接回接受多个连接的服务。为了澄清,这是我想要实现的图表:
http://i.stack.imgur.com/rgTMd.png
(显然我需要超过10个代表才能将图像嵌入此页面)
如果您感兴趣,我试图这样做的原因是因为我想构建一个系统,使其更容易通过任意协议进行隧道传输,只要协议支持某种方式从某些方式发送消息一端到另一端。我将系统放在上图中的代理端A和代理端B之间。
以下是我希望它如何工作的示例:
首先,我将运行以下命令
mkfifo backpipe
nc -l 7778 0<backpipe | tee f1 | nc localhost 7777 | tee f2 >backpipe
“服务器代理”将在端口7777上运行。
应用程序将连接到的“客户端代理”将在端口8080上运行
客户端代理将连接到端口7778
解决“服务器代理”和“客户端代理”
答案 0 :(得分:0)
OpenSSH已经通过-D
选项支持此功能:
ssh -D <port> -l username remotehost
SOCKS服务器将侦听连接并将其转发到SSH连接的另一端。
答案 1 :(得分:0)
我决定在同一时间编写自己的解决方案。它是一些python代码,它接受多个客户端,并基本上通过标准输入/输出代理通信。如果有人有兴趣,这里是代码http://pastebin.com/1E45Exsy
不要相信此代码能够完美运行。我没有正确测试它,它没有处理断开连接的客户端。
我将继续寻找更优雅,更强大的解决方案,但在此期间应该这样做。我会在这里发布代码更新。