STFP报错Connection_reset

1. 背景

EDI的测试环境最近经常有开发返回SFTP报错,堆栈如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Caused by: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot connect to edisftp://xxxx@116.196.***.*** 22
at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:149)
at com.jd.lsb.edi.component.sftp.EdiSftpOperations.connect(EdiSftpOperations.java:39)
at com.jd.lsb.edi.component.sftp.CustomerRemoteFileProducer.connectIfNecessary(CustomerRemoteFileProducer.java:218)
at com.jd.lsb.edi.component.sftp.CustomerRemoteFileProducer.recoverableConnectIfNecessary(CustomerRemoteFileProducer.java:210)
at com.jd.lsb.edi.component.sftp.CustomerRemoteFileProducer.preWriteCheck(CustomerRemoteFileProducer.java:137)
at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:114)
at com.jd.lsb.edi.component.sftp.CustomerRemoteFileProducer.process(CustomerRemoteFileProducer.java:62)
at com.jd.lsb.edi.component.sftp.EdiSftpEndpoint$1.process(EdiSftpEndpoint.java:73)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:178)
at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:445)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:173)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
... 56 more
Caused by: com.jcraft.jsch.JSchException: Session.connect: java.net.SocketException: Connection reset
at com.jcraft.jsch.Session.connect(Session.java:504)
at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:121)
... 68 more

2. 解决方案

执行命令telnet ip port
1)若连接正常

会输出SSH-2.0-OpenSSH_6.6.1类似的SSH信息

1
2
3
4
Trying 192.168.xxx.xxx...
Connected to 192.168.xxx.xxx.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1

Note:
j-one平台工具中的telnet,即使连接成功后也会自动断开(通过堡垒机可保持连接),类似如下:

1
2
3
4
5
Trying 192.168.xxx.xxx...
Connected to 192.168.xxx.xxx.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1
Connection closed by foreign host.

2)若连接异常:

1
2
Trying 192.168.xxx.xxx...
telnet: connect to address 192.168.xxx.xxx: Connection refused

1
2
3
4
Trying 192.168.xxx.xxx...
Connected to 192.168.xxx.xxx.
Escape character is '^]'.
Connection closed by foreign host.

评论