使用反向 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

相关内容