javascript
jsch设置代理_Java使用JSch组件实现SSH协议代理服务
JSch組件介紹:
JSch特性介紹:http://www.jcraft.com/jsch/
JSch組件下載:?http://sourceforge.net/projects/jsch/files/jsch/0.1.53/jsch-0.1.53.zip/download
JSch案例地址:?http://www.jcraft.com/jsch/examples/
實(shí)現(xiàn)說明以及實(shí)現(xiàn)代碼:
功能圖說明:
如上圖所示,本地的IP地址為10.210.84.128,本地只能連接到10.210.81.5的22端口,現(xiàn)在需要訪問10.210.81.4的9080端口服務(wù),為解決這個(gè)問題,這里使用JSch給我們帶來的好處。
package com.what21.app.jsch;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
public class SSHProxy {
private static final SSHProxy proxy = new SSHProxy();
private Session session;
/**
* @return
*/
public static SSHProxy getInstance(){
return proxy;
}
/**
* @param host SSH主機(jī)
* @param port SSH端口
* @param userId SSH用戶
* @param passwd SSH口令
* @return
* @throws JSchException
*/
public void createSSHSession(String host,int port,String userId,String passwd)
throws JSchException{
JSch jsch = new JSch();
this.session = jsch.getSession(userId, host, port);
session.setPassword(passwd);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
}
/**
* @param localePort 本地服務(wù)端口
* @param targetHost 連接的目標(biāo)主機(jī)
* @param targetPort 連接的目標(biāo)端口
* @return
* @throws JSchException
*/
public void forward(int localePort,String targetHost,int targetPort)
throws JSchException{
session.setPortForwardingL(localePort, targetHost, targetPort);
}
/**
* @param args
*/
public static void main(String[] args) {
// ===============1. 實(shí)例化===============
SSHProxy proxy = SSHProxy.getInstance();
// ===============2. 創(chuàng)建SSH會話===============
//SSH服務(wù)器
String host = "10.210.81.5";
//SSH服務(wù)端口
int port = 22;
//SSH連接用戶名
String userId = "root";
//SSH連接密碼
String passwd = "123456";
try {
proxy.createSSHSession(host, port, userId, passwd);
} catch (JSchException e) {
e.printStackTrace();
}
// ===============3. 端口跳轉(zhuǎn)===============
// 本地服務(wù)端口
int localePort = 9080;
// 目標(biāo)服務(wù)器
String targetHost = "10.210.81.4";
// 目標(biāo)服務(wù)端口
int targetPort = 9080;
try {
proxy.forward(localePort, targetHost, targetPort);
} catch (JSchException e) {
e.printStackTrace();
}
}
}
總結(jié)
以上是生活随笔為你收集整理的jsch设置代理_Java使用JSch组件实现SSH协议代理服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中locals函数_Pyth
- 下一篇: 测试无数据_无数据驱动自动化测试