我有以下情况
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