![从第三个受信任的服务器打开两台服务器之间的 ssh 隧道](https://linux22.com/image/714919/%E4%BB%8E%E7%AC%AC%E4%B8%89%E4%B8%AA%E5%8F%97%E4%BF%A1%E4%BB%BB%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%89%93%E5%BC%80%E4%B8%A4%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%8B%E9%97%B4%E7%9A%84%20ssh%20%E9%9A%A7%E9%81%93.png)
假设我有 3 个服务器:A、B 和 C
C 可以 ssh 到 A 和 B,但是 A 和 B 无法互相连接。
是否可以使用 C 作为“中介”在 A 和 B 之间打开隧道,而无需通过 C 代理所有流量?
答案1
如果 A 和 B 无法连接,那么流量就必须经过 C。您想要(在 A 上)运行:
ssh -L A:portA:B:portB user@C
虽然这通常会直接在 A 上运行,但也许您可以从 C 远程运行它(但我没有第三台机器可以检查):
ssh user@A "ssh -L A:portA:B:portB user@C"