Opened 2 years ago

#12635 new Bug report

550 Data channel timed out when connecting to vendor FTP

Reported by: Carlo Owned by:
Priority: normal Component: FileZilla Client
Keywords: ftp tls timeout vpn Cc:
Component version: 3.57.0 Operating system type: OS X
Operating system version: Monterey 12.0.1


I am experimenting an issue when connecting to the FTP server owned by a vendor of my company. The server is a Microsoft FTP and I am connecting from a MacBook Pro M1 through a VPN.

My connection is configured as:

  • Require explicit FTP over TLS
  • Logon by password (normal)
  • Server type autodetect
  • Transfer passive
  • Transfer type binary (I have experimented with ASCII too)

but I receive the error 550 Data channel timed out on LIST operation. Here are the full logs at debug level:

Status:      	Connecting to <IP>:21...
Status:      	Connection established, waiting for welcome message...
Status:      	Initializing TLS...
Status:      	TLS connection established.
Status:      	Logged in
Status:      	Retrieving directory listing...
Command:	PWD
Response: 	257 "/" is current directory.
Command:	TYPE I
Response: 	200 Type set to I.
Command:	PASV
Response: 	227 Entering Passive Mode (<IP1>,<IP2>,<IP3>,<IP4>,19,138).
Command:	LIST
Response: 	150 Opening BINARY mode data connection.
Response: 	550 Data channel timed out.
Error:        	Failed to retrieve directory listing

On the same machine this simple python script succeeds in the operation:

from ftplib import FTP_TLS
ftp = FTP_TLS("ThirdPartyServer", "MyLogin", "MyPassword")

producing the following stack:

Python 3.9.7 (default, Nov 19 2021, 08:43:07)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from ftplib import FTP_TLS
>>> ftp = FTP_TLS("ThirdPartyServer", "MyUser", "MyPassword")
>>> ftp.set_debuglevel(2)
>>> ftp.set_pasv(True)
>>> ftp.prot_p()
*cmd* 'PBSZ 0'
*put* 'PBSZ 0\r\n'
*get* '200 PBSZ command successful.\n'
*resp* '200 PBSZ command successful.'
*cmd* 'PROT P'
*put* 'PROT P\r\n'
*get* '200 PROT command successful.\n'
*resp* '200 PROT command successful.'
'200 PROT command successful.'
>>> ftp.pwd()
*cmd* 'PWD'
*put* 'PWD\r\n'
*get* '257 "/" is current directory.\n'
*resp* '257 "/" is current directory.'
>>> ftp.dir()
*cmd* 'TYPE A'
*put* 'TYPE A\r\n'
*get* '200 Type set to A.\n'
*resp* '200 Type set to A.'
*cmd* 'PASV'
*put* 'PASV\r\n'
*get* '227 Entering Passive Mode (<IP1>,<IP2>,<IP3>,<IP4>,19,141).\n'
*resp* '227 Entering Passive Mode (<IP1>,<IP2>,<IP3>,<IP4>,19,141).'
*cmd* 'LIST'
*put* 'LIST\r\n'
*get* '150 Opening ASCII mode data connection.\n'
*resp* '150 Opening ASCII mode data connection.'
06-11-21  10:06AM       <DIR>          folder1
05-24-21  01:25PM       <DIR>          folder2
10-06-21  10:34AM       <DIR>          folder3
03-30-21  08:43AM       <DIR>          folder4
*get* '226 Transfer complete.\n'
*resp* '226 Transfer complete.'

Am I missing some configuration in Filezilla?

Change History (0)

Note: See TracTickets for help on using tickets.