1

我正在寻找一种工具(在 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

解决“服务器代理”和“客户端代理”

4

2 回答 2

0

-DOpenSSH 已经通过以下选项支持此功能:

ssh -D <port> -l username remotehost

SOCKS 服务器将侦听连接并将它们转发到 SSH 连接的另一端。

于 2012-04-05T14:29:07.383 回答
0

同时,我决定编写自己的解决方案。这是一段接受多个客户端的python代码,基本上通过标准输入/输出代理通信。如果有人有兴趣,这里的代码http://pastebin.com/1E45Exsy

不要相信此代码可以完美运行。我没有正确测试它,它不处理断开客户端。

我将继续寻找更优雅、更强大的解决方案,但同时应该这样做。如果我制作它们,我将在此处发布代码更新。

于 2012-04-06T12:19:32.303 回答