FTP上传超时问题排查 ftpClient.storeFile Connection timed out

这篇具有很好参考价值的文章主要介绍了FTP上传超时问题排查 ftpClient.storeFile Connection timed out。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ftp storeFile 超时日志如下

Caused by: java.net.ConnectException: Connection timed out (Connection timed out)

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

at java.net.Socket.connect(Socket.java:589)

at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:894)

at org.apache.commons.net.ftp.FTPClient._storeFile(FTPClient.java:633)

at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:624)

at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1976)

at com.byai.aegis.common.util.FTPFileUtil.upload(FTPFileUtil.java:203)

... 33 common frames omitted

1.检查服务端网络是否能通,可以用命令的方式登录ftp服务器,上传,下载文件试下。

2.检查主被动模式是否与服务端模式一致 上传一般都是被动模式,是否有设置被动模式

FTPClient ftpClient = getClient();
ftpClient.addProtocolCommandListener(
        new PrintCommandListener(
                new PrintWriter(new OutputStreamWriter(new LogOutputStream(log), "UTF-8")), true));
// 连接FTP服务器
ftpClient.connect(ftpConfig.getIp(), ftpConfig.getPort());
// 登录FTP
ftpClient.login(ftpConfig.getUserName(), ftpConfig.getPassword());
// 正常返回230登陆成功
int reply = ftpClient.getReplyCode();
// 设置被动模式
ftpClient.enterLocalPassiveMode();
log.info("reply {}",reply);
if (!FTPReply.isPositiveCompletion(reply)) {
    ftpClient.disconnect();
    throw new RuntimeException("连接ftp失败");
}

// 设置被动模式
ftpClient.enterLocalPassiveMode(); 建议设置在login 以后,但也有人设置在ftpClient.storeFile 之前的,都可以尝试下

3.查看ftp服务端日志,需要在connect前加上listenner

ftpClient.addProtocolCommandListener(
                new PrintCommandListener(
                        new PrintWriter(new OutputStreamWriter(new LogOutputStream(log), "UTF-8")), true));

我遇到的超时ftp日志如下

: 220 (vsFTPd 3.0.2)

:

: USER *******

:

: 331 Please specify the password.

:

: PASS *******

:

: 230 Login successful.

:

: reply 230

: PWD

:

: 257 "/"

:

: CWD test/123/

:

: 250 Directory successfully changed.

:

: MODE S

:

: 200 Mode set to S.

:

: TYPE I

:

: 200 Switching to Binary mode.

:

: PASV

:

227 Entering Passive Mode (218,108,105,4,180,14).

 一直卡在store 上传文件处超时,后面通过升级commons-net到由3.3升级到3.6版本后解决,猜测可能是由于ftp服务器版本不兼容的原因。文章来源地址https://www.toymoban.com/news/detail-632661.html

            <dependency>
                <groupId>commons-net</groupId>
                <artifactId>commons-net</artifactId>
                <version>3.6</version>
            </dependency>

到了这里,关于FTP上传超时问题排查 ftpClient.storeFile Connection timed out的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【完美解决】GitHub连接超时问题 Recv failure: Connection was reset

    已经开了梯子但是在Idea中使用git(GitHub)还是连接超时 Recv failure: Connection was reset 。此时需要让git走代理。 1.对右下角网络点击右键 - 打开 网络和Internet设置 2. 代理 - 查看到地址和端口号 127.0.0.1:7890 3.在终端(cmd)输入命令 4.查看是否设置成功 至此完成 相当丝滑 ^ ^

    2024年02月08日
    浏览(43)
  • Android 解决Connection timed out: connect或者部分第三方库下载超时问题

    之前比较老的项目重新打开,因为Android Studio 版本已经升级,导致原来部分的第三方库需要重新下载,但是因为墙或者其他原因,一直下载超时。后续解决了此问题,在此记录一下。 新版本的Android Studio 在 项目目录下的 settings.gradle 文件中添加如下代码: 旧版本的Android St

    2024年02月20日
    浏览(66)
  • Git 上传Github 超时问题

    提交代码到GitHub总是超时,偶尔会直接上传成功。 提供一下解决方案 1.首先找到网络 2. 找到代理 3. 把自动检查设置全部关闭,然后打开手动设置代理,然后输入ip地址和你代理的端口号,保存即可。  4. 最后使用git push origin master 上传就可以上传成功了

    2024年02月12日
    浏览(49)
  • 完全解决FTP上传文件名称中文乱码问题

    今天项目上加了个定时扫描本地文件路径下所有文件实现自动上传至ftp文件服务器的功能,经测试发现一旦上传中文名称的文件就会乱码或者文件上传不了。初步排查就是FTP服务器字符编码的问题。在网上查了很多资料都没有效果。在这里讲一下我踩过的坑,以及分享我能上

    2024年02月13日
    浏览(56)
  • 【Kafka超时问题(已解决),kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection w】

    1.Kafka正常运行一段时间后,用测试工具发送数据时报了错: 2.于是单独用黑窗口启动Kafka,看看具体报啥错: 3.原因 JDK版本和Kafka版本不匹配 。 (我手里项目较多,用的JDK版本也不一样,有的时候忘了把JDK切换回去,就报了这个错)。 我的Kafka版本: 更换JDK版本或Kafka版本

    2024年02月09日
    浏览(50)
  • 一次某某云上的redis读超时排查经历

    性能排查,服务监控方面的知识往往涉及量广且比较零散,如何较为系统化的分析和解决问题,建立其对性能排查,性能优化的思路,我将在这个系列里给出我的答案。 最近一两天线上老是偶现的redis读超时报警,并且是 业务低峰期间 ,甚是不解,于是开始着手排查。 以下

    2024年02月14日
    浏览(45)
  • Java服务刚启动时,一小波接口超时排查全过程

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 我们组有一个流量较大的Java服务,每次发代码时,服务都会有一小波接口超时,之前简单分析过,发现这些超时的case仅发生在服务刚启动时,少量请求会耗时好几秒,但之后又马上恢复正常。

    2024年02月16日
    浏览(56)
  • 太坑了吧!一次某某云上的redis读超时排查经历

    性能排查,服务监控方面的知识往往涉及量广且比较零散,如何较为系统化的分析和解决问题,建立其对性能排查,性能优化的思路,我将在这个系列里给出我的答案。 最近一两天线上老是偶现的redis读超时报警,并且是 业务低峰期间 ,甚是不解,于是开始着手排查。 以下

    2023年04月12日
    浏览(36)
  • Finalshell连接Linux超时之Connection timed out: connect

    BUG原因:每次重启finalshell 还是 CentOS,ip地址存在变化的可能 目录 🍉前言 🌼报错 🌼摸索 💪解决措施 (1)福利 :花了2小时才解决的BUG,希望本篇文章能帮你10分钟解决! (2)tips :ipconfig或ip addr,以及,vim或vi,不同的操作系统有细微区别,比如我现在用CentOs,有些人

    2024年02月04日
    浏览(44)
  • Finalshell(SSH)连接虚拟机超时java.net.ConnectException: Connection refused【已解决】

    最近学习Liunx,连接虚拟机一直超时,出现的问题查了一晚上解决了,自己记录一下防止忘记。(如果需要安装包的可以留言) 1.虚拟机ip网段和本机ip网段不相同 2.网络设配器异常需要更新驱动、 解决办法 开启桥接模式 在这里注意不要选自动并且需要和你主机连接的对应

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包