Linux 将同步客户端连接到单个连接的代理

Linux 将同步客户端连接到单个连接的代理,linux,sockets,networking,proxy,vpn,Linux,Sockets,Networking,Proxy,Vpn,我正在寻找一种工具(在linux下),它允许我设置一个端到端代理,在一端的一个端口上同时接受多个客户端,通过一个连接将数据转发到另一端,然后在另一端“扩展”连接,以连接回接受多个连接的服务。为了澄清,以下是我想要实现的目标: (显然,我需要10个以上的代表才能将图像嵌入此页面) 如果你感兴趣的话,我之所以尝试这样做,是因为我想构建一个系统,只要协议支持某种方式从一端向另一端发送消息,就可以更容易地通过任意协议进行隧道传输。在上图中,我将系统置于代理端A和代理端B之间 以下是我希望它如何工作的示

我正在寻找一种工具(在linux下),它允许我设置一个端到端代理,在一端的一个端口上同时接受多个客户端,通过一个连接将数据转发到另一端,然后在另一端“扩展”连接,以连接回接受多个连接的服务。为了澄清,以下是我想要实现的目标:

(显然,我需要10个以上的代表才能将图像嵌入此页面)

如果你感兴趣的话,我之所以尝试这样做,是因为我想构建一个系统,只要协议支持某种方式从一端向另一端发送消息,就可以更容易地通过任意协议进行隧道传输。在上图中,我将系统置于代理端A和代理端B之间

以下是我希望它如何工作的示例:

首先,我将运行以下命令

mkfifo后管道

nc-l 7778 0排气管

“服务器代理”将在端口7777上运行

应用程序将连接到的“客户端代理”将在端口8080上运行

客户端代理将连接到端口7778


解决“服务器代理”和“客户端代理”问题OpenSSH已经通过
-D
选项支持这一点:

ssh -D <port> -l username remotehost
ssh-D-l用户名远程主机

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

我决定编写自己的解决方案。这是一段python代码,它接受多个客户端,基本上通过标准输入/输出代理通信。如果有人感兴趣,下面是代码

不要相信此代码可以完美工作。我没有正确测试它,它不能处理断开客户端连接的问题


我将继续寻找一个更优雅、更健壮的解决方案,但同时也应该这样做。如果我做了更新,我会在这里发布代码。

您可以在两个代理服务器之间使用GRE/VPN/L2TP隧道,并通过它们路由数据。@EdwardH哦,我不知道VPN协议是以这种方式运行的。在闲逛之后,用openvpn建立vpn隧道并拦截通信似乎是我想要做的完美选择。我将进一步调查。谢谢你的帮助。我在实现vpn解决方案时遇到问题。如果我能让它工作,这将是最优雅的解决方案,但我也会继续寻找其他解决方案。不幸的是,我在让它工作方面遇到了问题,所以我现在还不能验证这一点,但我确实成功地使用了-L选项。我正试图再次复制这一成功,但我太累了,以至于我忘记了我为使它工作所做的一切,我的bash历史也没有那么大的帮助。我明天再睡一会儿,再看看。
-L
不做袜子。它只是将单个端口上的连接转发到单个远程目标;这正是我当时正在调查的。只要它的实现允许它做我想做的事情,任何类型的代理都可以。我更新了问题以反映这一点。