我正在尝试设置代理隧道以提供静态 IP 地址以连接到一台 SFTP 服务器。我正在我的 Heroku 服务器上使用 QuotaGardStatic 附加组件进行尝试。我看到了一些教程,这是我与代理隧道连接的课程:
public class JsheExecutor {
public static void go(InputStream targetStream) throws Exception {
StringBuilder outputBuffer = new StringBuilder();
String host = "hostOfThatSFTP"; // The host to be connected finally
String user = "myUser";
String password = "mypassword";
int port = 22;
String tunnelRemoteHost = "hostFromQuotaGardAddOn"; // The host from where the tunnel is created
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
config.put("PreferredAuthentications", "password");
ProxySOCKS5 proxyTunnel = new ProxySOCKS5(tunnelRemoteHost, 2222);
proxyTunnel.setUserPasswd("quotaguardUser", "quotaguardpass");
session.setProxy(proxyTunnel);
session.setTimeout(3600000);
session.connect();
Channel channel=session.openChannel("sftp");
channel.setInputStream(targetStream);
InputStream stdout=channel.getInputStream();
channel.connect();
while (true) {
byte[] tmpArray=new byte[1024];
while(stdout.available() > 0){
int i=stdout.read(tmpArray, 0, 1024);
if(i<0)break;
outputBuffer.append(new String(tmpArray, 0, i));
}
if(channel.isClosed()){
System.out.println("exit-status: "+channel.getExitStatus());
break;
}
}
stdout.close();
channel.disconnect();
session.disconnect();
System.out.println(outputBuffer.toString());
}
}
但我总是error at=error code=H12 desc="Request timeout" method=POST path="/mybrocki/auth/users/export" host=be.minibrocki.ch request_id=28ada120-7c8d-4261-adcf-d105d27067bb fwd="213.208.158.212" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
在它写的地方上线
session.connect();
我尝试了很多东西,改变了超时值但没有。有人可以帮我看看我在哪里弄错了吗?