我有一个应用程序,它通过非 http 端口与服务器守护程序建立不安全的连接。我们在内部使用此工具。我们的一些用户可能偶尔会在我们的设施外工作。我不希望从外部向我们的设施建立不安全的连接。此流量未加密,可能会带来风险。
我的想法是使用 OSX Proxifier 之类的应用程序通过 ssl 将特定应用程序的流量通过 https 代理到代理服务器。然后我会设置一个代理服务器,但我不明白代理如何或是否可以将这些数据转发到另一台服务器。
答案1
有几种代理入站一般网络流量的标准方法(“反向代理”)。
如果入站流量仅为 HTTP(S),则 Web 服务器可以转发它。参见ProxyPass
Apache 中的示例。
可以使用以下方式代理任意入站 TCP 流量袜子。支持 SOCKS 的客户端将其请求包装在 SOCKS 请求中,并将其发送到 SOCKS 服务器,该服务器将解释并转发该请求。这通常使用 ssh 完成,它提供了DynamicForward
设置 SOCKS 代理的选项。它打开一个侦听客户端主机的端口,通过加密连接转发 SOCKS 流量,并在服务器上解释和路由它。可以指示许多网络客户端使用 SOCKS 代理。
另一种常见方法是通过 SSL 隧道传输流量。例如,stunnel 可以做到这一点。在客户端上,它会监听端口,将流量包装在 SSL 中,然后将其发送到服务器。在服务器上,stunnel 会解开 SSL 包装并将流量转发到已配置的服务。
您可以将不同类型的流量发送到同一个端口(通常为 443),方法是使用另一端的端口多路复用器来确定流量的类型并将其路由到正确的服务。 安全组和sshttp其中两个用于处理在一个端口上多路复用 HTTP 和 SSH 的常见情况 - 比如包装在 SSL 中并发送到端口 443。最后TCP复用器是为端口复用而开发的协议。例如,xinetd 可以解释它,但据我所知,它尚未在任何客户端中实现。(您可能希望将其包装在 SSL 中。)