You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.x SFTP集成出现Channel is being closed异常求助

Spring Boot 3.x SFTP集成出现Channel is being closed异常求助

大家好,我在基于Spring Boot 3.x做SFTP集成开发时,碰到了一个头疼的问题——频繁抛出Channel is being closed异常,直接导致文件传输失败。具体的异常栈信息如下:

Caused by: org.apache.sshd.common.SshException: Channel is being closed
    at org.apache.sshd.sftp.client.impl.DefaultSftpClient.receive(DefaultSftpClient.java:319)
    at org.apache.sshd.sftp.client.impl.AbstractSftpClient.response(AbstractSftpClient.java:181)
    at org.apache.sshd.sftp.client.impl.AbstractSftpClient.rpc(AbstractSftpClient.java:169)
    at org.apache.sshd.sftp.client.impl.AbstractSftpClient.checkHandle(AbstractSftpClient.java:290)
    at org.apache.sshd.sftp.client.impl.AbstractSftpClient.open(AbstractSftpClient.java:589)
    at org.apache.sshd.sftp.client.impl.SftpOutputStreamAsync.<init>(SftpOutputStreamAsync.java:63)
    at org.apache.sshd.sftp.client.impl.AbstractSftpClient.write(AbstractSftpClient.java:1213)
    at org.apache.sshd.sftp.client.SftpClient.write(SftpClient.java:940)
    at org.apache.sshd.sftp.client.SftpClient.write(SftpClient.java:936)

这个错误并不是每次都会出现,目前还没摸清楚稳定复现的规律,想请教下社区里的朋友们:有没有遇到过类似的问题?或者有哪些排查方向可以推荐?

我自己先列几个可能的排查点,也欢迎大家补充:

  • 检查SFTP服务器端的连接超时、会话超时配置,是不是服务器主动关闭了空闲的连接?
  • 确认Spring Boot中SFTP客户端的连接池配置(如果使用了连接池),比如最大连接数、空闲回收时间是否合理,有没有连接泄漏的情况?
  • 查看文件传输时的操作耗时,是不是因为单次操作时间过长,超过了服务器的会话超时阈值?
  • 排查是否存在多线程共享同一个SFTP连接的情况,毕竟SFTP连接大多不是线程安全的,并发操作很容易引发这类异常。
  • 尝试升级项目依赖的Apache SSHD版本,看看是不是框架已知的bug导致的?

备注:内容来源于stack exchange,提问作者Yaroslav Ambrozyak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:54:33