代理协议的可能性

代理协议的可能性

问题是这样的:目前,我们控制着网络中的代理服务器,该服务器使用 HTTP 协议重定向所有请求。有人请求一个网站,它会转到代理,代理会以 http 形式发送请求,然后以 http 形式返回。

现在,我们希望代理服务器能够发送不同的协议。这意味着:我们不想发送 HTTP、HTTPS w/e 协议,而是发送协议 X。

其背后的原因是,我们在另一端拥有硬件/软件解决方案,它们不监听 HTTP 或 HTTPS 请求,需要通过另一种协议来处理。

我想知道这是否有可能,或者我们是否必须寻找另一种解决方案来处理中间的请求。

如果对这个问题有任何疑问,请随时提问,我知道我的描述可能有点模糊。

我提前向大家表示感谢!

—施米克尔

编辑:成品应该能够做到以下几点:

(用户) 尝试使用特定协议访问 (dns-name) (特定协议未知,假设它在端口 8512 上运行)。现在代理服务器应将此协议发送到终端设备 (因此不是 HTML,而是协议 8512!!)


我将研究一下这个 SOCKS 协议。如果这是我需要的答案,我会告诉你的!

无论如何,感谢您现在的回答,如果有人有其他解决方案,请随时告诉我。

一旦我对 SOCKS 原理有了更多的理解,我就会再次回到这里。


看起来这个 SOCKS 解决方案是为具有对协议的本机支持的应用程序而设计的?或者我可能误解了什么。但是,我们的应用程序没有对 SOCKS 的内置支持,这意味着使用 SOCKS 是不可能的。我需要的是客户端和远程服务器之间的某种“服务器/网关”。此解决方案应该能够根据协议/端口重定向流量。

如果解释不清楚,我很抱歉。如果有任何疑问,请随时询问。

答案1

听起来你正在寻找袜子协议定义RFC 1928

安全套接字 (SOCKS) 是一种 Internet 协议,它通过代理服务器在客户端和服务器之间交换网络数据包。... 实际上,SOCKS 服务器将 TCP 连接代理到任意 IP 地址,并提供转发 UDP 数据包的方法。...

答案2

在 Linux 上,tsocks有一种解决方案可以使不支持 SOCKS 的应用程序使用 SOCKS:https://linux.die.net/man/8/tsocks

然而,听起来 SOCKS 可能不是解决你的问题的唯一方法 —— 我怀疑,在你的情况下,haproxy 可能是一个可行的替代方案。

这两种方法之间存在一些差异,最显著的差异是 haproxy 会消除对代理感知的需求(因为不需要处理 SOCKS 协议)。可以在此处找到 haproxy 的快速介绍:https://www.digitalocean.com/community/tutorials/an-introduction-to-haproxy-and-load-balancing-concepts。您的用例听起来类似于https://www.digitalocean.com/community/articles/how-to-use-haproxy-to-set-up-mysql-load-balancing--3

haproxy 不是这里唯一的选择 - nginx 也可以进行 UDP 和 TCP 代理(我可能会选择 haproxy,但这是个人选择的问题)。

相关内容