Simple commands are executed correctly, but listing or file transfer doesn't work. What should I do?

FTP protocol uses two socket connections - one for commands (using well-known ports, usually 21 and rarely 990) and another for data (parameters of which are negotiated via command connection). The presence of the data socket, causes problems when there's a NAT, router or firewall present on the client or on the server or between them.

By default, data connection is established from the server to the client (yes, in opposite direction to command connection). This is called Active mode, and this mode is not compatible with most NATs and routers. So, the first thing to try is to change the value of PassiveMode property of TElSimpleFTPSClient component to another one (i.e. switch it from false to true and from true to false and test both ways).

Now, some servers are also placed behind the NAT in which case they know only their internal network address and even in passive mode they give the client the wrong address to connect to (for data channel). In this case the client should be smart enough to change the address. This is done in TElSimpleFTPSClient component by setting AdjustPasvAddress property to true.

If you are using proxy, also try changing the value of UseProxySettingsForDataChannel from false (default) to true.

In case of FTPS (i.e. FTP secured with SSL/TLS protocol) several other properties can be tried. They are EncryptDataChannel and UseSSLSessionResumption (both are boolean properties and you need to try to set each property to false and to true).

If you have a third-party FTP client that connects to the server, then you can be sure that some combination of settings will work with TElSimpleFTPSClient as well.

Ready to get started?

Learn more about SecureBlackbox or download a free trial.

Download Now