您的位置:首页 > 其它

SSH 使用及-L -R -D简介

2016-06-29 08:48 260 查看

SSH Tunnel

SSH Tunnel 顾名思义就是 SSH 安全隧道,平时看别人的相关帖子的时候很多时候可能看不太明白讲的是几个意思,这里我们约定一下说法的含义:
HostA 可以访问 HostB ” 意思是在机器 HostA 上,可以通过 SSH Client 远程登陆到机器 HostB 上。

下边 Sequence 图中,箭头方向就是机器间可以访问的方向。

下边 Sequence 图中,命令在箭头 起点端的机器 执行。

用流程图表示为:
HostAHostAHostBHostBssh HostBUser1@HostB此时已登陆了HostB的terminal

SSH 的 -L, -R, -D 三种用法

ssh -L 用法1(本地起端口映射到其他机器)

HostAHostAHostBHostBHostCHostC[执行1] ssh -L 8888 UserC@HostC[效果] ssh -p 8888 UserC@HostB
意思是在 HostB 上,让 localhost 起 8888 端口,使之映射到 HostC 的 22 端口(默认)。如此,在 HostA 上可以使用 HostB:8888 就像使用 HostC:22 一样。
关键命令:
HostB$ ssh -L 8888 UserC@HostC1

ssh -L 用法2(本地起端口映射到其他机器)

HostAHostAHostBHostBHostCHostC[执行1] ssh -L 8888:HostC:22 UserB@HostB[效果] ssh -p 8888 UserC@localhost
意思是在 HostA 上,让 localhost 起 8888 端口,使之映射到 HostC 的 22 端口。如此,在 HostA 上可以使用 localhost:8888 就像使用 HostC:22 一样。
关键命令:
HostA$ ssh -L 8888:HostC:22 UserB@HostB1

ssh -R 用法1(非本地起端口映射到其他机器)

HostAHostAHostBHostBHostCHostC[执行1] ssh -R 8888:localhost:22 UserB@HostB[效果] ssh -p 8888 UserC@HostB
意思是在 HostC 上,让 HostB 起 8888 端口,使之映射到 localhost 的 22 端口。如此,在 HostA 上可以使用 HostB:8888 就像使用 HostC:22 一样。
HostC$ ssh -R 8888:localhost:22 UserB@HostB1

ssh -R 用法2(非本地起端口映射到其他机器)

HostAHostAHostBHostBHostCHostCHostDHostD[执行1] ssh -R 8888:HostD:22 UserB@HostB[效果] ssh -p 8888 UserD@HostB
意思是在 HostC 上,让 HostB 起 8888 端口,使之映射到 HostD 的 22 端口。如此,在 HostA 上可以使用 HostB:8888 就像使用 HostD:22 一样。
HostC$ ssh -R 8888:HostD:22 UserB@HostB1

ssh -D 用法(本地或非本地起 Socket Proxy)

本地的代理服务,通过 localhost:22 隧道入口建立

HostA$ ssh -D 80801
此时 localhost:8080 就是本地的 Socket 代理服务器。效果,即浏览器配置了 本机IP:8080 Socket5 的代理后,就可以像在本机上一样访问网站资源了。
本地的代理服务,通过 HostB:22 隧道入口建立

HostA$ ssh -D 8080 UserB:HostB
或写全
HostA$ ssh -D localhost:8080 -p 22 UserB:HostB123
此时 localhost:8080 就是HostB上的 Socket 代理服务器。效果,即浏览器配置了 本机IP:8080 Socket5 的代理后,就可以像在HostB上一样访问网站资源了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SSH