三台机器之间的 SSH 隧道

use*_*310 6 ssh tunnel

我遇到一个场景是:A可以通过SSH访问B(B无法访问A,因为nat),A可以通过SSH访问C(C无法访问A,因为nat),B和C无法访问彼此之间,存在于不同的网络中。

A->B,A->C,C->B?我的问题是如何设置隧道或命令让C可以访问B?

Kyl*_*nes 5

要建立从 B 到 C 的 ssh 隧道,请在主机 A 上运行以下命令:

ssh -n -R 3300:localhost:3300 B sleep 999999999 &
ssh -n -L 3300:localhost:22 C sleep 999999999 &
Run Code Online (Sandbox Code Playgroud)

将 B 和 C 替换为适当的主机名。

现在在B上你可以

ssh -p 3300 localhost
Run Code Online (Sandbox Code Playgroud)

并连接到主机 C。当您想要拆除隧道时,在主机 A 上将 ssh 命令带出后台并输入Ctrl-C