Firewall
socat connect-connect“代理”兩個入站TCP連接以公開防火牆服務?
我正在努力嘗試了解如何使用 socat(或類似的 TCP 埠重定向器)在 PC 上公開防火牆服務。
這是場景:我有一台伺服器 PC,它將充當兩台客戶端電腦之間的監聽“代理”/重定向器。伺服器可以根據需要打開任意數量的防火牆埠,並具有公共 IP。在第一個“客戶端”(如與代理伺服器建立出站連接時)客戶端 A 上,我在埠 4200 上託管服務。這台 PC 位於防火牆後面,僅允許基於先前出站連接的入站 TCP 連接。後面的防火牆客戶端 B 也是如此。
我需要做的是讓客戶端 B 能夠通過面向 Internet 的 TCP 代理伺服器訪問客戶端 A 上的埠 42000。問題是我只能從客戶端 A 發起出站 TCP 連接。當中繼的兩個客戶端都在只允許出站連接的防火牆後面時,如何通過伺服器重定向 TCP 連接?請參閱下圖並讓我知道是否需要澄清。
------------ | Server | |w/ public IP| ------------ / \ {|<Firewall>|} {|<Firewall>|} | | ---------- ---------- | Client A | | Client B | ---------- ---------- (hosting a service (wanting to access on port 4200) Client A port 4200)
我將不勝感激任何建議,謝謝。
就像是
在“伺服器”上:
socat TCP4-LISTEN:10000 TCP4-LISTEN:4200
關於“客戶 A”
socat TCP4:Server:10000 TCP4:localhost:4200
在“客戶端 B”
上配置客戶端連接到伺服器:4200
或者,看看 SSH 埠轉發。
您還可以使用我最初為這種類型的場景(特別是 RDP)開發的PortFusion 。
server> PortFusion ] 10000 [ client-a> PortFusion 4200 localhost - 10000 server [ 4200
現在 client-b 可以連接到 server:4200 進行 RDP。
重要的提示!!
您應該以不同的使用者身份啟動 PortFusion
client-a
(或 socat 或其他任何東西),並且也不要從您要連接的使用者的圖形會話中啟動 - 否則您將獲得黑屏或掉線等。希望我的回答能有所幫助。