使用反向 ssh 將所有流量轉送到另一台機器

使用反向 ssh 將所有流量轉送到另一台機器

我有以下場景

                                                                                                                  
               Local Network                     |                          Global Network                        
                                                 |                                                                
                                                 |                                                                
                                                 |                                                                
                                                 |                                                                
                                                 |                                                                
                                                 |                                                                
                                                 |                                                                
+------------+              +-----------+        |               +----------+                   +----------------+
|   client A | -----------> |  server A | <--------------------> | server B | --------------->  | Global Network |
+------------+              +-----------+        |               +----------+                   +----------------+
                                                 |                                                                
                                                 |                                                                

未來的挑戰:

將所有流量從 轉移server Aserver B。由於所有隧道協定都已關閉server A,我認為反向 ssh 是一個不錯的選擇。

我使用以下命令來進行反向 ssh: ssh -fNT -R 4000:localhost:22 [email protected] -i <private-key>

現在server A我可以看到連接埠4000已開啟。但我不知道如何將整個流量轉移到server B

答案1

我的直接想法是創建一個 tun 介面並適當地設定路由。正如您在 ssh man 中看到的,以下命令列參數可用。

-w local_tun[:remote_tun] 請求在客戶端 (local_tun) 和伺服器 (remote_tun) 之間使用指定的 tun(4) 裝置進行隧道裝置轉送。設備可以透過數字 ID 或關鍵字“any”指定,它>使用下一個可用的隧道設備。如果未指定remote_tun,則預設為「any」。另請參閱 >ssh_config(5) 中的 Tunnel 和 TunnelDevice 指令。

如果未設定 Tunnel 指令,它將設定為預設隧道>模式,即「點對點」。如果需要不同的隧道轉送模式,則應在 -w 之前指定。

這個答案提供了更多細節。

https://unix.stackexchange.com/questions/525217/create-network-interface-from-ssh-tunnel

相關內容