SSH端口转发实现代理服务器
2015-11-03 18:46
337 查看
端口转发介绍
SSH为建立在应用层和传输层基础上的安全协议,常用端口为22。本文主要介绍其端口转发功能。顾名思义,就是监听指定端口,把监听到的信息通过ssh协议通道(22端口和ssh server)转发到remote target host 指定端口。其中ssh server就是中转服务器(代理服务器)。
端口转发方式方法
1.方式
本地端口转发:client能ssh到server时,可使用,属于正向ssh。
远程端口转发:server能ssh到client时,可使用,属于逆向ssh。
某些条件限制下就只能用一种端口转发方式了。
2. 方法
a:ssh命令行(linux主机或仿真器运行)
本地端口转发:
ssh -L <local port>:<remote host>:<remote port> <SSH hostname>
远程端口转发:
ssh -R <local port>:<remote host>:<remote port> <SSH hostname>
b:SecureCRT工具端口转发功能(主要介绍)
c:利用orion-ssh2-214.jar包java编码模拟端口转发和基于ssh协议的功能(后面介绍)
SecureCRT工具端口转发功能实例一:本机访问受防火墙限制的数据库服务器
1.
中转服务器:10.10.222.333
2.
目的主机:11.11.222.444
3.
实现本机登陆
步骤一:快速新建连接 > ssh到10.10.222.333
SecureCRT>quick connect>
步骤二:端口转发设置
1.标签右键>session options>Port Forwarding(本地端口转发)
2.新增端口转发
点击add,新增一个本地端口转发。设置参数后保存。
步骤三:重新组装数据库连接串
真实连接串:(DESCRIPTION =(ADDRESS = (PROTOCOL = tcp)(HOST = 11.11.222.444)(PORT=1542))(connect_data=(sid=test-db)))
端口转发连接串:(DESCRIPTION =(ADDRESS = (PROTOCOL = tcp)(HOST =
127.0.0.1)(PORT=1542))(connect_data=(sid=test-db)))
或(DESCRIPTION =(ADDRESS = (PROTOCOL = tcp)(HOST =
localhost)(PORT=1542))(connect_data=(sid=test-db)))
注:端口转发连接串中端口不一定与真实连接串中端口相等。
步骤四:本机登陆test db
在pl/sql客户端,用步骤三端口转发连接串,登陆成功。前提是SecureCRT connect要处于连接状态。(即步骤一要一直连接着)
利用orion-ssh2-214.jar包java编码模拟端口转发
Connection conn = new Connection("10.10.222.333");
// 建立连接
conn.connect();
//ssh登陆
boolean isAuthenticated = conn.authenticateWithPassword(username,password);
if (isAuthenticated ==
false)
thrownew IOException("Authentication failed.");
//localhost:12345 端口转发到11.11.222.444:22端口
LocalPortForwarder
lpfd = conn.createLocalPortForwarder(12345, "11.11.222.444", 22) ;
SSH为建立在应用层和传输层基础上的安全协议,常用端口为22。本文主要介绍其端口转发功能。顾名思义,就是监听指定端口,把监听到的信息通过ssh协议通道(22端口和ssh server)转发到remote target host 指定端口。其中ssh server就是中转服务器(代理服务器)。
端口转发必备条件
中转服务器连通性:客户端主机能ssh登陆到中间主机;中间主机与目标应用无防火墙限制。当然中转服务器可以是多台(问题2就是两台中转服务器)。端口转发方式方法
1.方式
本地端口转发:client能ssh到server时,可使用,属于正向ssh。
远程端口转发:server能ssh到client时,可使用,属于逆向ssh。
某些条件限制下就只能用一种端口转发方式了。
2. 方法
a:ssh命令行(linux主机或仿真器运行)
本地端口转发:
ssh -L <local port>:<remote host>:<remote port> <SSH hostname>
远程端口转发:
ssh -R <local port>:<remote host>:<remote port> <SSH hostname>
b:SecureCRT工具端口转发功能(主要介绍)
c:利用orion-ssh2-214.jar包java编码模拟端口转发和基于ssh协议的功能(后面介绍)
SecureCRT工具端口转发功能实例一:本机访问受防火墙限制的数据库服务器
1.
中转服务器:10.10.222.333
2.
目的主机:11.11.222.444
3.
实现本机登陆
步骤一:快速新建连接 > ssh到10.10.222.333
SecureCRT>quick connect>
步骤二:端口转发设置
1.标签右键>session options>Port Forwarding(本地端口转发)
2.新增端口转发
点击add,新增一个本地端口转发。设置参数后保存。
步骤三:重新组装数据库连接串
真实连接串:(DESCRIPTION =(ADDRESS = (PROTOCOL = tcp)(HOST = 11.11.222.444)(PORT=1542))(connect_data=(sid=test-db)))
端口转发连接串:(DESCRIPTION =(ADDRESS = (PROTOCOL = tcp)(HOST =
127.0.0.1)(PORT=1542))(connect_data=(sid=test-db)))
或(DESCRIPTION =(ADDRESS = (PROTOCOL = tcp)(HOST =
localhost)(PORT=1542))(connect_data=(sid=test-db)))
注:端口转发连接串中端口不一定与真实连接串中端口相等。
步骤四:本机登陆test db
在pl/sql客户端,用步骤三端口转发连接串,登陆成功。前提是SecureCRT connect要处于连接状态。(即步骤一要一直连接着)
利用orion-ssh2-214.jar包java编码模拟端口转发
Connection conn = new Connection("10.10.222.333");
// 建立连接
conn.connect();
//ssh登陆
boolean isAuthenticated = conn.authenticateWithPassword(username,password);
if (isAuthenticated ==
false)
thrownew IOException("Authentication failed.");
//localhost:12345 端口转发到11.11.222.444:22端口
LocalPortForwarder
lpfd = conn.createLocalPortForwarder(12345, "11.11.222.444", 22) ;
相关文章推荐
- Mysql错误:ERROR 1205 (HY000): Lock wait timeout exceeded解决办法
- POJ1486 Sorting Slides (二分图求最大匹配)
- Freecms模板的制作与静态化 (2)
- python 时间四舍五入
- 钉钉的API
- Mac下同时安装多个版本的JDK
- Web安全之语法知识补习
- Spring 事务处理
- 微服务API Gateway
- 以前看不懂鲁迅,现在再看满眼泪花
- jquery判断某个属性是否存在 hasAttr
- 快速幂
- 委托使用心得
- 注解的知识总结
- 《Java虚拟机原理图解》 1.1、class文件基本组织结构
- bootstrap 样式查阅参考文档
- ubuntu下不加index.php无法正常访问
- 在C#、Java中,为什么不能用[返回值]区别重载方法?
- Hdu 2476 String painter (区间DP)
- android 多线程Thread,Runnable,Handler,AsyncTask等之间的关系