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/
实现说明以及实现代码:
功能图说明:
如上图所示,本地的IP地址为10.210.84.128,本地只能连接到10.210.81.5的22端口,现在需要访问10.210.81.4的9080端口服务,为解决这个问题,这里使用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主机
* @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 本地服务端口
* @param targetHost 连接的目标主机
* @param targetPort 连接的目标端口
* @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. 实例化===============
SSHProxy proxy = SSHProxy.getInstance();
// ===============2. 创建SSH会话===============
//SSH服务器
String host = "10.210.81.5";
//SSH服务端口
int port = 22;
//SSH连接用户名
String userId = "root";
//SSH连接密码
String passwd = "123456";
try {
proxy.createSSHSession(host, port, userId, passwd);
} catch (JSchException e) {
e.printStackTrace();
}
// ===============3. 端口跳转===============
// 本地服务端口
int localePort = 9080;
// 目标服务器
String targetHost = "10.210.81.4";
// 目标服务端口
int targetPort = 9080;
try {
proxy.forward(localePort, targetHost, targetPort);
} catch (JSchException e) {
e.printStackTrace();
}
}
}
jsch设置代理_Java使用JSch组件实现SSH协议代理服务相关推荐
- jsch设置代理_尽管在JSch中设置了STRICT_HOST_CHECKING,但仍获取UnknownHostKey异常
在使用java代码连接会话时在代码下执行时获取问题 . 尝试所有更改也尝试使用SFTPFileSystemConfigurationBuilder,但从那个场景我无法设置代理服务器用户名和密码 . i ...
- linux 谷歌浏览器设置代理_linux下chrome+Proxy Switchy+ssh和firefox+autoproxy+ssh | 学步园...
继之前firefox+autoproxy+tor+privoxy失效之后,找到了更简单更快速的ssh代理方法:chrome+Proxy Switchy+ssh和firefox+autoproxy+ss ...
- jsch设置代理_SSH代理(ssh-agent)及SSH代理转发(agent-forwarding)功能介绍
之前有详细介绍SSH密钥方式登录,SSH端口转发 ,以及X11转发,可点击如下原链接查看 结合下面拓扑图模拟演示并介绍SSH代理(ssh-agent)及SSH代理转发(agent-forwarding ...
- Jsch访问代理机报proxy error:Forbidden
Jsch访问代理机报proxy error:Forbidden 问题解释 通过代理访问物理机被拒绝 原因分析 代理机用户名.端口错误或物理机用户名.端口.密码错误 代理机或物理机代理端口未开放 问题处 ...
- Jsonp、CORS、vue设置代理跨域
Jsonp的原理 前言: 下面是原生jsonp的使用案例.后端使用node搭建的简易服务器. 1.前段代码 <!DOCTYPE html><html lang="en&qu ...
- devServer proxy跨域 设置代理 proxy
概念 什么是同源策略 同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一 ...
- linux 设置代理 安装jdk mysql tomcat redis hadoop
1.修改linux用户名和密码 前提进入root用户 原用户名 XX,改成用户名 YY 执行 usermod -l YY XX 修改用户 YY 的密码,如果你在root权限下 ...
- 用iframe设置代理解决ajax跨域请求问题
用iframe设置代理解决ajax跨域请求问题 参考文章: (1)用iframe设置代理解决ajax跨域请求问题 (2)https://www.cnblogs.com/ranzige/p/370965 ...
- Linux中为wget命令设置代理
方法1:使用命令参数-e wget本身没有专门设置代理的命令行参数,但是有一个"-e"参数,可以在命令行上指定一个原本出现在".wgetrc"中的设置.于是可以 ...
最新文章
- 热闹的聚会与尴尬的聚会_如何增加(和保存)您最喜欢的技术聚会
- Android开发艺术探索》读书笔记 (8) 第8章 理解Window和WindowManager
- java中的IO详解(上)
- 计算机从业者的技术成长学习之路
- 编程之美 2.14求数组的子数组之和的最大值
- Java配置----JDK开发环境搭建及环境变量配置
- 谈谈 SAP 产品 UI 开发中的组件概念
- 链表 队列 基本概念 为什么使用二叉查找树 抽象数据类型
- xib文件的读取方法
- RocketMQ单机版本安装(windows环境)
- windows 内部预览版与迅雷极速版不配合
- 使用wordpress分页函数paginate_links
- 【Oracle】SQLPLUS命令
- ThinkPHP视频教程 PHP-ThinkPHP 8天课程完整版
- html注释js,JavaScript 注释
- flex:1属性是什么意思
- 通过css实现按钮高亮
- Springboot中下划线转驼峰配置
- minecraft兑换码领取!
- Android文档管理器