com.jcraft.jsch 实现SSH的BindAddress功能

今天使用jsch实现ssh功能遇到一个问题,请各位大神帮忙看看,先在这里谢过了。问题如下:
之前能通过命令sftp username@ip连接对端服务器,java代码为
com.jcraft.jsch.Session session = null;
JSch jsch = new JSch();
session = jsch.getSession(userName, ip, Integer.parseInt(port));
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
后面由于客户安全考虑使用了浮动ip,先前的命令无法连通,需用命令sftp -oBindAddress=ip_浮动 syncoss@ip。
发现使用session.setConfig("BindAddress", ip_浮动);//无效
继续查资料,试着使用代理
 ProxySOCKS4 proxysocket = new ProxySOCKS4(ip_浮动,22);
 session.setProxy(proxysocket);
依旧不行。。。。
求各位大神。指教


20170302后面的解决方法:

session.setConfig("StrictHostKeyChecking", "no");
// 增加浮动ip的绑定
if (!"".equals(bindAddress) && null != bindAddress) {
    SocketFactoryIns socketFactory = new SocketFactoryIns();
    socketFactory.setLocalAddressIp(bindAddress);
    session.setSocketFactory(socketFactory);
}
session.setPassword(password);
....

猜你喜欢

转载自eclipower.iteye.com/blog/2311386
今日推荐