Hello Jagtar,
Please, use the ftpserver-users mailing list for these questions. Your log file says that the remote peer (either your FTP client or some network appliance) closed the connection. It is possible that the IP address from the PASV response is incorrect: Entering Passive Mode (ex,te,rnl,ip,203,135) Is ex,te,rnl,ip, the correct IP address the client should connect to? You said the FTP client never got this response so a firewall might be killing the connection for any reason. Check your FTP client (just in case) and Firewall log files. In Active Mode, the ports should be opened in the FTP Client end; the ftpserver only needs port 21 and outgoing connections from port 20 (or the one you have configured in the XML), this is why it works. Active mode is 'troublesome' when the port the FTP client opened in its local computer is not available to the FTP server (ie, the FTP client is behind a firewall or in a NATed environment). 2013/3/31 Jagtar Singh <jsmun...@hotmail.com> > Hi, > We configured apache ftp server (v 1.0.6) for passive mode operation. > Server is behind firewall so we specified port range (50000-55000) asking > firewall admin to open the same range.On client side (connecting via > external ip) we don't get response to PASV command (when doing dir). On > server side we get this exception in log (excerpt below). We thought it's a > firewall issue. > Strangely, we removed passive configuration from xml and everything > started to work. Ports being used were 60000+ which we didn't ask admins to > open. > Also from internal IP, it never gave any issue. > Please explain the behavior because mostly we need passive port > specification due to restrictive firewalls. I'm afraid this might cause > problem. > Thanks in advance.J.--[ INFO] 2013-03-28 04:40:53,825 [admin] > [][cl.ie.nt.ip] RECEIVED: PASV[DEBUG] 2013-03-28 04:40:53,825 [admin] > [][cl.ie.nt.ip] Initiating passive data connection[DEBUG] 2013-03-28 > 04:40:53,826 [admin] [][cl.ie.nt.ip] Opening passive data connection on > address "/int.ern.al.ip" and port 52103[DEBUG] 2013-03-28 04:40:53,826 > [admin] [][cl.ie.nt.ip] Passive data connection created on address > "/int.ern.al.ip" and port 52103[DEBUG] 2013-03-28 04:40:53,827 [admin] > [][cl.ie.nt.ip] Firing a WRITE event for session 2[DEBUG] 2013-03-28 > 04:40:53,828 [admin] [][cl.ie.nt.ip] Firing a WRITE event for session > 2[DEBUG] 2013-03-28 04:40:53,828 [admin] [][cl.ie.nt.ip] Event WRITE has > been fired for session 2[DEBUG] 2013-03-28 04:40:53,828 [admin] > [][cl.ie.nt.ip] Firing a WRITE event for session 2[DEBUG] 2013-03-28 > 04:40:53,829 [admin] [][cl.ie.nt.ip] Firing a MESSAGE_SENT event for > session 2[DEBUG] 2013-03-28 04:40:53,829 [admin] [][cl.ie.nt.ip] Adding > event MESSAGE_SENT to session 2Queue : [MESSAGE_SENT, ] > [DEBUG] 2013-03-28 04:40:53,829 [admin] [][cl.ie.nt.ip] Event MESSAGE_SENT > has been fired for session 2[DEBUG] 2013-03-28 04:40:53,829 [admin] > [][cl.ie.nt.ip] Firing a EXCEPTION_CAUGHT event for session 2[DEBUG] > 2013-03-28 04:40:53,830 [admin] [][cl.ie.nt.ip] Adding event > EXCEPTION_CAUGHT to session 2Queue : [MESSAGE_SENT, , EXCEPTION_CAUGHT, ] > [DEBUG] 2013-03-28 04:40:53,830 [admin] [][cl.ie.nt.ip] Event > EXCEPTION_CAUGHT has been fired for session 2[DEBUG] 2013-03-28 > 04:40:53,830 [admin] [][cl.ie.nt.ip] Firing a SESSION_CLOSED event for > session 2[DEBUG] 2013-03-28 04:40:53,830 [admin] [][cl.ie.nt.ip] Adding > event SESSION_CLOSED to session 2Queue : [MESSAGE_SENT, , EXCEPTION_CAUGHT, > , SESSION_CLOSED, ] > [DEBUG] 2013-03-28 04:40:53,830 [admin] [][cl.ie.nt.ip] Event > SESSION_CLOSED has been fired for session 2[DEBUG] 2013-03-28 04:40:53,830 > [admin] [][cl.ie.nt.ip] Event WRITE has been fired for session 2[DEBUG] > 2013-03-28 04:40:53,831 [admin] [][cl.ie.nt.ip] Event WRITE has been fired > for session 2[DEBUG] 2013-03-28 04:40:53,831 [admin] [][cl.ie.nt.ip] Event > MESSAGE_RECEIVED has been fired for session 2[DEBUG] 2013-03-28 > 04:40:53,831 [] [][] Event MESSAGE_RECEIVED has been fired for session > 2[DEBUG] 2013-03-28 04:40:53,831 [] [][] Firing a MESSAGE_SENT event for > session 2[DEBUG] 2013-03-28 04:40:53,831 [admin] [][cl.ie.nt.ip] Firing a > MESSAGE_SENT event for session 2[ INFO] 2013-03-28 04:40:53,831 [admin] > [][cl.ie.nt.ip] SENT: 227 Entering Passive Mode (ex,te,rnl,ip,203,135) > [DEBUG] 2013-03-28 04:40:53,831 [admin] [][cl.ie.nt.ip] Event MESSAGE_SENT > has been fired for session 2[DEBUG] 2013-03-28 04:40:53,831 [] [][] Event > MESSAGE_SENT has been fired for session 2[DEBUG] 2013-03-28 04:40:53,831 [] > [][] Firing a EXCEPTION_CAUGHT event for session 2[DEBUG] 2013-03-28 > 04:40:53,831 [admin] [][cl.ie.nt.ip] Firing a EXCEPTION_CAUGHT event for > session 2[ WARN] 2013-03-28 04:40:53,833 [admin] [][cl.ie.nt.ip] EXCEPTION > :java.io.IOException: An existing connection was forcibly closed by the > remote host at sun.nio.ch.SocketDispatcher.read0(Native Method) at > sun.nio.ch.SocketDispatcher.read(Unknown Source) at > sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source) at > sun.nio.ch.IOUtil.read(Unknown Source) at > sun.nio.ch.SocketChannelImpl.read(Unknown Source) at > org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:280) > at > org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:44) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:695) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:668) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:657) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1141) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at > java.lang.Thread.run(Unknown Source)[ERROR] 2013-03-28 04:40:53,835 [admin] > [][cl.ie.nt.ip] Exception caught, closing sessionjava.io.IOException: An > existing connection was forcibly closed by the remote host at > sun.nio.ch.SocketDispatcher.read0(Native Method) at > sun.nio.ch.SocketDispatcher.read(Unknown Source) at > sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source) at > sun.nio.ch.IOUtil.read(Unknown Source) at > sun.nio.ch.SocketChannelImpl.read(Unknown Source) at > org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:280) > at > org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:44) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:695) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:668) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:657) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1141) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at > java.lang.Thread.run(Unknown Source)[DEBUG] 2013-03-28 04:40:53,836 [admin] > [][cl.ie.nt.ip] Event EXCEPTION_CAUGHT has been fired for session 2[DEBUG] > 2013-03-28 04:40:53,836 [] [][] Event EXCEPTION_CAUGHT has been fired for > session 2[DEBUG] 2013-03-28 04:40:53,836 [] [][] Firing a SESSION_CLOSED > event for session 2[DEBUG] 2013-03-28 04:40:53,836 [admin] [][cl.ie.nt.ip] > Firing a SESSION_CLOSED event for session 2[ INFO] 2013-03-28 04:40:53,836 > [admin] [][cl.ie.nt.ip] CLOSED--