Good, we now have the correct engine. FYI, this is the line:
DEBUG |20260316 10:28:24|Loading post-processing engine object (ftp)
The "Loading post-processing engine object" is unique in the log file, and what I search when trying to see if the correct engine is loaded. The stuff between the parentheses is the name of the engine. Now you know my trick ;)
There were two reasons I needed the log file. Many people confuse FTP and SFTP. They are entirely different protocols with entirely different requirements on either end of the connection, so I needed to be absolutely sure I am talking about FTP, not SFTP. We got that.
The second reason is that the log file tells me at which point of the FTP file transfer we get a problem. This log file tells us that we have successfully connected to the FTP server (the login is successful), but the FTP server has rejected our file upload. This meshes well with your FTP test.
As a result, we have to consider three things:
- Passive vs Active mode
- Correct initial directory
- Any possible hosting interference.
First, understand that FTP uses two separate connections between the client and the server: a control channel for sending commands and receiving replies (we have verified this is connected), and a data channel for transferring files or directory listings. The control channel stays open for the whole session, while the data channel is opened only when a transfer is needed and then closed again.
Next, we need to consider how the data channel connection is established. There are two modes: active and passive.
Active mode. In this arrangement the client opens a socket on a random high‑numbered port and tells the server, via the control channel, which port it is listening on. When the server is ready to send or receive data, it initiates a connection from its own data port (normally port 20) back to the client’s specified port. This works well when the client is directly reachable from the internet, but it can be blocked by firewalls that prevent inbound connections. This mode rarely works on commercial web hosting because these ports are firewalled by default.
Passive mode. Here the client asks the server to listen for a data connection. The server replies with the address and port number it has chosen. The client then initiates the data connection to that server‑provided endpoint. Because the client is the one that opens the connection, passive mode usually works better through firewalls and NAT devices, which tend to allow outbound connections but restrict inbound ones. This is what most always works on commercial web hosting.
With that in mind, here's what you need to check.
In the Configuration page make sure that Use passive mode is set to Yes.
Again in the Configuration page make sure that the Initial directory is set to your share's name without a leading slash. Also note that it is case-sensitive, i.e. FOOBAR, foobar, and FooBar are three different shares.
On your Synology side, log in and go to the Control Panel applet. Click on Shared Folder. Click on the share. Click on Edit. Click on Permissions. Find the username you are connecting as. You need a tick mark under Read/Write. Also make sure that Advanced Permissions are all disabled.
Now try a backup. If it worked, stop. If it did not, keep reading.
Connect to your FTP server using the SAME connection information you are using in Akeeba Backup from outside of your own network. A simple way to do that is disconnecting from your home/office Ethernet and WiFi, then tethering your computer to your phone's data (5G, 4G, …) connection. Can you upload, download, and delete a file? If not, you have messed up your Synology configuration. If you can and you still have a problem then the problem lies with your host.
By default, the Linux kernel won't allow FTP passive mode connections to be established. This requires loading a kernel module, adjusting kernel configuration parameters, and adding a firewall rule. Because the environment you are working in is a commercial hosting platform, you do not have the necessary root privileges on the server to do that yourself. The practical step is to contact your hosting provider’s support team, explain that you need passive‑mode FTP to be allowed, and ask them to please help.
For what it's worth, here's the slightly more technical take on FTP passive mode in Linux. Linux kernels include a Netfilter helper called nf_conntrack_ftp that is required for the firewall to recognise and allow the secondary data connections used by FTP in passive mode. By default this helper is not active. To enable passive‑mode FTP one must load the kernel module and then adjust the connection‑tracking settings so the helper is permitted to run. The key sysctl switch is net.netfilter.nf_conntrack_helper, which should be set to 1; this can be done with sysctl -w net.netfilter.nf_conntrack_helper=1 (lasts until reboot) or by adding the line to /etc/sysctl.conf (permanent solution). After the module is loaded and the sysctl flag is enabled, the firewall rules can reference the FTP helper, for example by adding a firewall rule that uses -m helper --helper ftp or by employing the newer - j CT --helper ftp target in iptables (legacy) or nftables (newer kernel-level firewall interface). And yes, I have done that myself on the Debian-based (and previously Ubuntu Server-based) home server I am using. I know what I am talking about here not just from dry theory, but from hard-won first-hand experience as well.
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!