
我有以下場景
Local Network | Global Network
|
|
|
|
|
|
|
+------------+ +-----------+ | +----------+ +----------------+
| client A | -----------> | server A | <--------------------> | server B | ---------------> | Global Network |
+------------+ +-----------+ | +----------+ +----------------+
|
|
未來的挑戰:
將所有流量從 轉移server A
到server 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