代理伺服器如何處理非 http 流量?
我有一個應用程序通過非 http 埠與伺服器守護程序建立不安全的連接。我們在內部使用這個工具。我們的一些使用者可能會在我們的設施之外工作。我不希望從外部對我們的設施進行不安全的連接。此流量未加密,可能會帶來風險。
我的想法是使用像 OSX Proxifier 這樣的應用程序,使用 ssl 通過 https 將我的特定應用程序的流量代理到代理伺服器。然後我會設置一個代理伺服器,但我不明白代理如何或是否有可能將該數據轉發到另一台伺服器。
有幾種代理入站一般網路流量的標準方法(“反向代理”)。
如果入站流量僅為 HTTP(S),則 Web 伺服器可以轉發它。參見例如
ProxyPass
Apache。可以使用SOCKS代理任意入站 TCP 流量。SOCKS 感知客戶端將其請求包裝在 SOCKS 請求中,並將其發送到 SOCKS 伺服器,後者解釋並轉發請求。這通常使用 ssh 完成,它提供了
DynamicForward
設置 SOCKS 代理的選項。它打開一個偵聽客戶端主機的埠,通過加密連接轉發 SOCKS 流量,並在伺服器上對其進行解釋和路由。許多網路客戶端可以被告知使用 SOCKS 代理。另一種常見的方法是通過 SSL 隧道傳輸流量。例如 stunnel 將執行此操作。在客戶端上,它偵聽埠,將流量封裝在 SSL 中,並將其發送到伺服器。在伺服器上,stunnel 解開 SSL 並將流量轉發到配置的服務。
您可以將不同類型的流量發送到同一個埠,通常是 443,通過使用另一端的埠多路復用器來確定它是什麼類型的流量並將其路由到正確的服務。 sslh和sshttp是兩個處理在一個埠上多路復用 HTTP 和 SSH 的常見情況——比如包裝在 SSL 中並發送到埠 443。最後, TCPMUX是一種為埠多路復用而開發的協議。例如 xinetd 可以解釋它,但它沒有在我知道的任何客戶端中實現。(您希望將其包裝在 SSL 中。)