FTP vs FTP (Alternative)

Can anyone tell me what is the difference between this two FTP options and which one is recommended?

I tried to use and right now with vsftpd on my raspi, the FTP is not working but the FTP (Alternative) would work :slight_smile:

Depending on the answer, I decide which road I choose :slight_smile:


There’s your answer! Use the one that works with your particular FTP server.

But to be honest, I’d try to use a different protocol. FTP isn’t as solid as some of the others.

thanks, but this is just too less technical :slight_smile:

Why do you think FTP is not solid ? and compared to which ones?

If it is about security, it has nothing to do with solid. If the implementation is making backups corrupt, I would understand your statement but than, why is it still available as an option in duplicati?

Anyhow, I want to reduce CPU usage on the destination. Right now, I am using SSH File Transfer Protocol through a VPN tunnel to transfer data. This makes not much sense from the perspective of transferring encrypted data, too much encryption on transit, too much overhead. The idea is, using a less CPU intense protocol for/to the destination and the VPN is taking care of the encryption on transit anyhow.
The destination is a Raspberry Pi 1 with some USB disks connected, small, not very power hungry but also low on CPU and memory (and was available for free). Anyhow, actually a perfect backup destination, but optimizing the usage is one of the things I play around with right now.

It’s widely implemented, with lots of implementation variations which don’t always work together well. Duplicati provides two client implementations in the hope that one works. Original pre-1985 design is also flawed, as data transfer is just a TCP stream so doesn’t notice errors like newer protocols might:


         A comment on transfer modes.  The stream transfer mode is

Postel & Reynolds                                              [Page 19]

RFC 959                                                     October 1985
File Transfer Protocol

         inherently unreliable, since one can not determine if the
         connection closed prematurely or not.

FTP is very simple and easy to get on small devices, so there’s a demand for it even if it’s not the best. Given a reasonably solid (and preferably secure, since it’s clear text) network, FTP can be adequate… I’m not going to try to say what’s best, but FTP is possibly as simple, weak, and universal as there is…

FTP is the .NET Framework implementation from Microsoft. FTP (Alternative) is either FluentFTP or its predecessor under a different name. You can see an example of attempting to adapt to specific server.


Just had the same question, but the answers here is limited. I tested and found some more information. When you hit the “Test Connection” button while setting up. The FTP (Alternative) option does A LOT more testing than then standard FTP option. The Alternative option seems to test directory listing, it uploads a test file, check it’s file permissions, then download the file again and finally delete the file.

The FTP option basically connects does a file listing and then disconnects.

Duplicati -


FTP Alternative:

That’s the widespread historical approach to what the Test connection button does, as seen here:

Feature request: Test write permissions on ‘FTP Test connection’ #2473
Test write permissions on ‘FTP Test connection’ #2500 was PR and said

Maybe we should move it later, so this can be done for all backends.

but there is always more that “could” be done than volunteers to do them.

would probably be the sort of code to change if anybody is willing to do it.
The official interface definition of exactly what a Test should do is vague:

but if more backends can do a better test, it would save having to point to:

Duplicati.CommandLine.BackendTester.exe and give directions for its use
(generally I advise editing Export As Command-line URL for empty folder).

Before you start using a particular backend to use as a backup target, you can use the Backend Tester to get an indication of the integrity of that backend.

I think this is too long for a quick test, but a better quick test would be nice.
Duplicati only exists and improves thanks to volunteers. More are needed.
There are ample opportunities in code, test, docs, support, planning, etc…