Normal good ftp using a Windows client and a Solaris server:
Client: ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list
Works fine!
Windows client - SUSE server pure-ftpd (firewall active/pure-ftpd allowed)
Client: ls
200 PORT command successful.
150 Connecting to port 500
Works fine!
SUSE client - Solaris server
Client: ls
500 ‘EPSV’ command not understood
227 Entering Passive Mode (131,176,60,249,71,180)
150 Opening ASCII mode data connection for /bin/ls
Works but why does SUSE client send command ‘EPSV’ that is not needed and is not understood by Solaris (and other!) servers.
SUSE client - SUSE server pure-ftpd (firewall active/pure-ftpd allowed)
Client: ls
229 Extended Passive mode OK (|||64553)
It hangs! It seems that command ‘EPSV’ (replacing the good command ‘PORT’!) is accepted but that the transfer hangs because of the firewall
SUSE client - SUSE server pure-ftpd (firewall switched off)
Client: ls
229 Extended Passive mode OK (|||42937)
Accepted data connection
It works!
Conclusions:
Very unfortunate that the SUSE client sends the non-standard command ‘EPSV’ that is unnecessary and tends not to be understood
The firewall settings made by Yast (default setting + allowance for pure-ftpd) are no good for the command ‘EPSV’ that SUSE clients (unfortunately) uses!