微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何清理Mina FTP服务器中的会话

如何解决如何清理Mina FTP服务器中的会话

我的服务器上有很多日志,服务器每10秒尝试重新打开自几个小时以来一直未激活的会话,这会导致异常,使日志充满噪音并可能会消耗cpu。此外,我们仍处于开发阶段,目前可能有1或2个用户在使用它,这很快就会变得可怕。

2020-10-26T05:38:02.145036437Z 05:38:02.144 [pool-3-thread-1] DEBUG o.a.ftpserver.impl.DefaultFtpHandler - Statistics login and connection count decreased due to session close
2020-10-26T05:38:02.145063194Z 05:38:02.144 [pool-3-thread-1] DEBUG o.a.ftpserver.impl.DefaultFtpHandler - Session closed
2020-10-26T05:38:02.145431444Z 05:38:02.145 [pool-3-thread-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event SESSION_CLOSED has been fired for session 127
2020-10-26T05:38:02.145525229Z 05:38:02.145 [pool-3-thread-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event SESSION_CLOSED has been fired for session 127
2020-10-26T05:38:07.284970328Z 05:38:07.284 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a SESSION_CREATED event for session 128
2020-10-26T05:38:07.285069189Z 05:38:07.284 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a SESSION_CREATED event for session 128
2020-10-26T05:38:07.285442711Z 05:38:07.284 [NioProcessor-1] INFO  o.a.f.listener.nio.FtpLoggingFilter - CREATED
2020-10-26T05:38:07.285491545Z 05:38:07.285 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event SESSION_CREATED has been fired for session 128
2020-10-26T05:38:07.285498543Z 05:38:07.285 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event SESSION_CREATED has been fired for session 128
2020-10-26T05:38:07.285504870Z 05:38:07.285 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a SESSION_OPENED event for session 128
2020-10-26T05:38:07.285510595Z 05:38:07.285 [NioProcessor-1] DEBUG o.a.m.f.e.OrderedThreadPoolExecutor - Adding event SESSION_OPENED to session 128
2020-10-26T05:38:07.285516146Z Queue : [SESSION_OPENED,]
2020-10-26T05:38:07.285521224Z 
2020-10-26T05:38:07.285526195Z 05:38:07.285 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event SESSION_OPENED has been fired for session 128
2020-10-26T05:38:07.286082534Z 05:38:07.285 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a SESSION_OPENED event for session 128
2020-10-26T05:38:07.286112963Z 05:38:07.285 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a SESSION_OPENED event for session 128
2020-10-26T05:38:07.286220938Z 05:38:07.286 [pool-3-thread-2] INFO  o.a.f.listener.nio.FtpLoggingFilter - OPENED
2020-10-26T05:38:07.287058266Z 05:38:07.286 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a WRITE event for session 128
2020-10-26T05:38:07.287226034Z 05:38:07.287 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a WRITE event for session 128
2020-10-26T05:38:07.287457936Z 05:38:07.287 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event WRITE has been fired for session 128
2020-10-26T05:38:07.287475036Z 05:38:07.287 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a WRITE event for session 128
2020-10-26T05:38:07.287482220Z 05:38:07.287 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event WRITE has been fired for session 128
2020-10-26T05:38:07.287532062Z 05:38:07.287 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event WRITE has been fired for session 128
2020-10-26T05:38:07.287540285Z 05:38:07.287 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event SESSION_OPENED has been fired for session 128
2020-10-26T05:38:07.287546236Z 05:38:07.287 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event SESSION_OPENED has been fired for session 128
2020-10-26T05:38:07.288078016Z 05:38:07.287 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a MESSAGE_SENT event for session 128
2020-10-26T05:38:07.288147757Z 05:38:07.287 [NioProcessor-1] DEBUG o.a.m.f.e.OrderedThreadPoolExecutor - Adding event MESSAGE_SENT to session 128
2020-10-26T05:38:07.288155468Z Queue : [MESSAGE_SENT,]
2020-10-26T05:38:07.288160646Z 
2020-10-26T05:38:07.288165669Z 05:38:07.287 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event MESSAGE_SENT has been fired for session 128
2020-10-26T05:38:07.288171088Z 05:38:07.287 [pool-3-thread-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a MESSAGE_SENT event for session 128
2020-10-26T05:38:07.288197511Z 05:38:07.287 [pool-3-thread-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a MESSAGE_SENT event for session 128
2020-10-26T05:38:07.288203626Z 05:38:07.287 [pool-3-thread-1] INFO  o.a.f.listener.nio.FtpLoggingFilter - SENT: 220 Service ready for new user.
2020-10-26T05:38:07.288209545Z 
2020-10-26T05:38:07.288214808Z 05:38:07.287 [pool-3-thread-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event MESSAGE_SENT has been fired for session 128
2020-10-26T05:38:07.288220563Z 05:38:07.288 [pool-3-thread-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event MESSAGE_SENT has been fired for session 128
2020-10-26T05:38:07.427407740Z 05:38:07.427 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a EXCEPTION_CAUGHT event for session 128
2020-10-26T05:38:07.427475376Z 05:38:07.427 [NioProcessor-1] DEBUG o.a.m.f.e.OrderedThreadPoolExecutor - Adding event EXCEPTION_CAUGHT to session 128
2020-10-26T05:38:07.427484023Z Queue : [EXCEPTION_CAUGHT,]
2020-10-26T05:38:07.427489058Z 
2020-10-26T05:38:07.427698283Z 05:38:07.427 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event EXCEPTION_CAUGHT has been fired for session 128
2020-10-26T05:38:07.427782730Z 05:38:07.427 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a EXCEPTION_CAUGHT event for session 128
2020-10-26T05:38:07.427790076Z 05:38:07.427 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a SESSION_CLOSED event for session 128
2020-10-26T05:38:07.427796398Z 05:38:07.427 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a EXCEPTION_CAUGHT event for session 128
2020-10-26T05:38:07.427802439Z 05:38:07.427 [NioProcessor-1] DEBUG o.a.m.f.e.OrderedThreadPoolExecutor - Adding event SESSION_CLOSED to session 128
2020-10-26T05:38:07.427808664Z Queue : [SESSION_CLOSED,]
2020-10-26T05:38:07.427814360Z 
2020-10-26T05:38:07.427819828Z 05:38:07.427 [NioProcessor-1] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event SESSION_CLOSED has been fired for session 128
2020-10-26T05:38:07.428728452Z 05:38:07.428 [pool-3-thread-2] WARN  o.a.f.listener.nio.FtpLoggingFilter - EXCEPTION :
2020-10-26T05:38:07.428764670Z java.io.IOException: Connection reset by peer
2020-10-26T05:38:07.428771912Z  at java.base/sun.nio.ch.FiledispatcherImpl.read0(Native Method)
2020-10-26T05:38:07.428777993Z  at java.base/sun.nio.ch.socketdispatcher.read(Socketdispatcher.java:39)
2020-10-26T05:38:07.428784116Z  at java.base/sun.nio.ch.IoUtil.readIntoNativeBuffer(IoUtil.java:276)
2020-10-26T05:38:07.428789728Z  at java.base/sun.nio.ch.IoUtil.read(IoUtil.java:245)
2020-10-26T05:38:07.428794896Z  at java.base/sun.nio.ch.IoUtil.read(IoUtil.java:223)
2020-10-26T05:38:07.428800059Z  at java.base/sun.nio.ch.socketChannelImpl.read(SocketChannelImpl.java:358)
2020-10-26T05:38:07.428805539Z  at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:317)
2020-10-26T05:38:07.428811093Z  at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:45)
2020-10-26T05:38:07.428841999Z  at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:683)
2020-10-26T05:38:07.428847689Z  at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:659)
2020-10-26T05:38:07.428853186Z  at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:648)
2020-10-26T05:38:07.428858551Z  at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68)
2020-10-26T05:38:07.428863900Z  at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1120)
2020-10-26T05:38:07.428875186Z  at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
2020-10-26T05:38:07.428881142Z  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
2020-10-26T05:38:07.428886314Z  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
2020-10-26T05:38:07.428891594Z  at java.base/java.lang.Thread.run(Thread.java:834)
2020-10-26T05:38:07.429795488Z 05:38:07.428 [pool-3-thread-2] ERROR o.a.ftpserver.impl.DefaultFtpHandler - Exception caught,closing session
2020-10-26T05:38:07.429821103Z java.io.IOException: Connection reset by peer
2020-10-26T05:38:07.429828386Z  at java.base/sun.nio.ch.FiledispatcherImpl.read0(Native Method)
2020-10-26T05:38:07.429834020Z  at java.base/sun.nio.ch.socketdispatcher.read(Socketdispatcher.java:39)
2020-10-26T05:38:07.429839502Z  at java.base/sun.nio.ch.IoUtil.readIntoNativeBuffer(IoUtil.java:276)
2020-10-26T05:38:07.429844754Z  at java.base/sun.nio.ch.IoUtil.read(IoUtil.java:245)
2020-10-26T05:38:07.429850585Z  at java.base/sun.nio.ch.IoUtil.read(IoUtil.java:223)
2020-10-26T05:38:07.429856024Z  at java.base/sun.nio.ch.socketChannelImpl.read(SocketChannelImpl.java:358)
2020-10-26T05:38:07.429860853Z  at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:317)
2020-10-26T05:38:07.429866286Z  at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:45)
2020-10-26T05:38:07.429870913Z  at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:683)
2020-10-26T05:38:07.429875852Z  at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:659)
2020-10-26T05:38:07.429880723Z  at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:648)
2020-10-26T05:38:07.429885822Z  at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68)
2020-10-26T05:38:07.429891372Z  at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1120)
2020-10-26T05:38:07.429896246Z  at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
2020-10-26T05:38:07.429917791Z  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
2020-10-26T05:38:07.429923473Z  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
2020-10-26T05:38:07.429928562Z  at java.base/java.lang.Thread.run(Thread.java:834)
2020-10-26T05:38:07.429933608Z 05:38:07.428 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event EXCEPTION_CAUGHT has been fired for session 128
2020-10-26T05:38:07.429939237Z 05:38:07.429 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event EXCEPTION_CAUGHT has been fired for session 128
2020-10-26T05:38:07.429944867Z 05:38:07.429 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a SESSION_CLOSED event for session 128
2020-10-26T05:38:07.429951263Z 05:38:07.429 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Firing a SESSION_CLOSED event for session 128
2020-10-26T05:38:07.429956216Z 05:38:07.429 [pool-3-thread-2] INFO  o.a.f.listener.nio.FtpLoggingFilter - CLOSED
2020-10-26T05:38:07.429961575Z 05:38:07.429 [pool-3-thread-2] DEBUG o.a.ftpserver.impl.DefaultFtpHandler - Closing session
2020-10-26T05:38:07.429966855Z 05:38:07.429 [pool-3-thread-2] DEBUG o.a.ftpserver.impl.DefaultFtpHandler - Statistics login and connection count decreased due to session close
2020-10-26T05:38:07.429972502Z 05:38:07.429 [pool-3-thread-2] DEBUG o.a.ftpserver.impl.DefaultFtpHandler - Session closed
2020-10-26T05:38:07.430422717Z 05:38:07.429 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event SESSION_CLOSED has been fired for session 128
2020-10-26T05:38:07.430470189Z 05:38:07.429 [pool-3-thread-2] DEBUG o.a.m.core.filterchain.IoFilterEvent - Event SESSION_CLOSED has been fired for session 128

我已经看到,这可能是客户端无法正常关闭其会话的问题,但是我想为此做后端防弹,因为将来我不会管理所有客户端。

解决方法

找到了解决方案,实际上我经常被机器人扫描。我只是在安全网关中过滤了IP地址,就完成了。我可以通过覆盖DefaultFtpLet的onConnect方法找到该ip,这里只需记录信息:

public class MyFtpPlet extends DefaultFtplet {
    public FtpletResult onConnect(FtpSession session) throws FtpException,IOException {
    log.info("onConnect");
    if (session != null) {
        if (session.getClientAddress() != null) {
            log.info(session.getClientAddress().toString());
        }
        if (session.getConnectionTime() != null) {
            log.info(session.getConnectionTime().toString());
        }
        if (session.getLastAccessTime() != null) {
            log.info(session.getLastAccessTime().toString());
        }
        if (session.getUser() != null) {
            log.info(session.getUser().getName());
        }
    }
    return null;
   }
[...]
} 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?