我有一个应用程序,通过非http端口到服务器守护进程进行不安全的连接。 我们内部使用这个工具。 我们有些用户可能会在我们的设施外工作。 我不希望从外面进入不安全的连接到我们的设施。 此stream量未encryption,可能会造成风险。
我的想法是使用像OSX Proxifier这样的应用程序通过https使用ssl代理我的特定应用程序的stream量到代理服务器。 然后,我会设置一个代理服务器,但是我不明白的是代理如何或是否可以将该数据转发到另一台服务器。
代理入站通用networkingstream量有几种标准方式(“反向代理”)。
如果入站stream量只是HTTP(S),那么Web服务器可以转发它。 请参阅Apache中的ProxyPass 。
任意入站TCPstream量可以用SOCKS代理。 SOCKS感知的客户端将其请求封装在SOCKS请求中,并将其发送到SOCKS服务器,SOCKS服务器解释并转发请求。 这通常用ssh来完成,它提供了DynamicForward选项来设置一个SOCKS代理。 它打开一个端口,在客户端主机上侦听,通过encryption连接转发SOCKSstream量,并在服务器上解释和路由它。 许多networking客户端可以被告知使用SOCKS代理。
另一种常见的方式是通过SSL隧道传输。 例如stunnel会做到这一点。 在客户端上侦听端口,将stream量封装在SSL中,并将其发送到服务器。 在服务器上,stunnel解开SSL并将stream量转发到configuration的服务。
您可以通过在另一端使用端口多路复用器来发送不同types的stream量到相同的端口(通常是443),以确定它是什么types的stream量并将其路由到正确的服务。 sslh和sshttp是处理在一个端口上复用HTTP和SSH的常见情况的两个端口 – 比如说封装在SSL中并发送到端口443.最后, TCPMUX是为端口复用开发的协议。 例如xinetd可以解释它,但是它并没有在我所知道的任何客户端中实现。 (你想要把它包装在SSL中。)