ssh本地转发和远程转发

1. 本地转发和例子

    本地机器A---能访问------>跳板机B----->能访问------>远程服务器C

    本地机器A-------------不能访问------------------>远程服务器C

    本地机器A----->通过本机端口以跳板机B的名义访问------>远程服务器C

本地转发的ssh命令执行点在A机器上,如下图所示:

graph LR ssh(fa:fa-user ssh命令)-->A subgraph A[本地机器A] --> B(跳板机jp) B(跳板机B) --> C[远程服务器C] classDef green fill:#9f6,stroke:#333,stroke-width:2px; classDef blue fill:#78f,stroke:#333,stroke-width:2px; classDef orange fill:#f96,stroke:#333,stroke-width:4px; class A green class B orange class C blue end

在A机器上执行的命令:

ssh -L 本机绑定的端口x:远程服务器C的IP:远程服务器C的端口y user@B

执行了这条命令后,访问本机的端口x就等于 通过B服务器ssh tunnel做转发 访问服务器的端口y

2. 远程转发和例子

远程转发的ssh命令执行点在B机器上,如下图所示:

graph LR ssh(fa:fa-user ssh命令)-->B subgraph A[远程服务器A] --> B(本地机器B) B(跳板机B) --> C[远程服务器C] classDef green fill:#9f6,stroke:#333,stroke-width:2px; classDef blue fill:#78f,stroke:#333,stroke-width:2px; classDef orange fill:#f96,stroke:#333,stroke-width:4px; class A green class B orange class C blue end

在B机器上执行的命令:

ssh -R 远程服务器A的端口x:要转发到的服务器C的IP:要转发到的服务器C的端口y user@A

执行了这条命令后,访问服务器A的端口x就等于 通过服务器B的ssh tunnel做转发 访问服务器C的端口y

3. 远程转发和本地转发的区别:

  1. 执行ssh的命令的机器不同:
    • 本地转发在 本地机器A 上执行ssh命令

    • 远程转发在 跳板机B 上执行ssh命令

  2. 应用场景的区别:
    • 本地转发多应用于:本地服务器A不能主动连接远程服务器C,需要通过跳板机B作为代理进行转发的情形;
    • 远程转发多应用于:服务器A不能主动连接服务器B(但反之可以的情形),比如:A在外网,B在内网。

[Ref]

https://www.jianshu.com/p/558781768505 https://blog.csdn.net/evandeng2009/article/details/51926797 https://blog.csdn.net/yzs2012/article/details/76850844 mermaid.min.js

Search

    Table of Contents