成功总是垂青于有准备的人。

BIBLE模型

发掘积累过程的快感

现实环境:

本地电脑A,跳板服务器B,限制保护服务器C。

所有对C的操作,都必须通过服务器B的中转。

当需需要连接服务器C时,如果不想通过多级跳转,那么可以使用SSH的隧道和转发功能。

首先建立本机到服务器C的隧道,通过服务器B转发。

ssh -N -f -g -L 2222:199.0.0.2:22 hlei@test.com -p 22

-C:压缩数据传输。

-N :不执行脚本或命令,通常与-f连用。

-f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。

-L 本地端口:目标IP:目标端口

建立这个隧道后,就可以在A电脑,直接ssh -p 2222 user@localhost。登陆保护服务器C。


另一个场景:

保护服务器C上面又一个WEB平台,现在要在A电脑访问,跳板机B 只能通C机器的 22端口,其他的都不能访问,此时就需要通过上面建立的隧道,再建立服务器C到本机的直接隧道。

ssh -N -f -g -L 8899:127.0.0.1:18889 test@localhost -p 2222

现在就可以打开127.0.0.1:8899 来访问在C平台的18889端口。现在局域网的其他机器并不能访问A电脑的IP,所以还可以进行一个操作。

ssh -N -f -g -L 192.168.2.44:8899:127.0.0.1:18889 test@localhost -p 2222

那么本地局域网的任何机器访问192.168.2.44:8899都会自动被映射到C机器的18889。

反向隧道

应用场景在于,人在外地C,你有一台服务器B(有公网 1.1.1.1),家里还有一台电脑A,现在你想在外地C访问家里的服务器B,那么这时候就可以先在家里面建立一个B到A 的反向隧道,然后你在任何能访问到B的地方,都能通过反向隧道访问家里的电脑。

ssh  -NfgC -R 1234:127.0.0.1:22 test@1.1.1.1

然后你在外地,就可以登陆1.1.1.1的1234端口连接家里的电脑了。

动态转发

ssh -D 22 -NfngqC test@127.0.0.1

ssh相关参数介绍:

-C      请求会话间的数据压缩传递。对于网络缓慢的主机,压缩对连接有所提升。但对网络流畅的主机来说,压缩只会更糟糕。
-c      选择ssh会话间数据加密算法。
-D     创建动态端口转发
-L    创建本地端口转发
-R  创建远程端口转发
-E log_file             将debug日志写入到log_file中,而不是默认的标准错误输出stderr。
-f      请求ssh在工作在后台模式。该选项隐含了"-n"选项,所以标准输入将变为/dev/null。
-G      使用该选项将使得ssh在匹配完Host后将输出与之对应的配置选项,然后退出
-g      允许远程主机连接到本地转发端口上。
-i identity_file  公钥认证时要读取的私钥文件。默认为~/.ssh/id_rsa。
-l login_name  指定登录在远程机器上的用户名。这也可以在全局配置文件中设置。
-N      明确表示不执行远程命令。仅作端口转发时比较有用。
-n      将/dev/null作为标准输入stdin,可以防止从标准输入中读取内容。当ssh在后台运行时必须使用该项。但当ssh被询问输入密码时失效。
-p port 指定要连接远程主机上哪个端口,也可在全局配置文件中指定。
-q      静默模式。大多数警告信息将不输出。


上一篇: SSH 隧道登陆,跳转登陆

下一篇:没有了

互联网信息太多太杂,各互联网公司不断推送娱乐花边新闻,SNS,微博不断转移我们的注意力。但是,我们的时间和精力却是有限的。这里是互联网浩瀚的海洋中的一座宁静与美丽的小岛,供开发者歇息与静心潜心修炼。 “Bible”是圣经,有权威的书,我们的本意就是为开发者提供真正有用的的资料。 我的电子邮件1217179982@qq.com,您在开发过程中遇到任何问题,欢迎与我联系。
Copyright © 2017. All rights reserved. 本站由 Helay 纯手工打造