Full description:
Plesk Obsidian 18.0.77.2 (Ubuntu 20.04 x86_64, build date 2026/04/16)
Problem: FTP backups to an external FTP server (E.g. Freebox NAS) fail with the following error:
Transport error: unable to list directory: Curl error: (18) Transferred a partial file: The last FTP request: LIST: The last FTP response: 426 Data channel closed
Investigation: Using auditd, I captured the exact command that pmm-ras builds internally:
/opt/psa/admin/bin/pmm-ras --check-repository --dump-storage=ftps://user@host : port/path --use-ftp-passive-mode
When
use_ftps=true is set in BackupsSettings table, pmm-ras constructs the URL with
ftps:// scheme (implicit FTPS). However, the remote FTP server only supports explicit FTPS (
AUTH TLS /
ftpes://). The server explicitly rejects implicit FTPS.
Root cause identified: Running pmm-ras manually with
ftpes:// instead of
ftps:// works perfectly:
/opt/psa/admin/bin/pmm-ras --check-repository --dump-storage="ftpes://user:pass@host:port/path" --use-ftp-passive-mode → Returns
<repository-check-errors/> (no errors)
Running with
ftps://: → Returns
Curl error: (56) Failure when receiving data from the peer
The BackupsSettings table stores the parameters separately (host, login, use_ftps, passive_mode) and pmm-ras builds the URL internally, always using
ftps:// (implicit) when
use_ftps=true, instead of
ftpes:// (explicit).
Note: a standard curl command with
--ssl flag (explicit FTPS / AUTH TLS) works perfectly to the same server.
Request: Please add support for explicit FTPS (
ftpes://) in pmm-ras, or add an option in the backup storage configuration to distinguish between implicit FTPS (
ftps://) and explicit FTPS (
ftpes://). Many FTP servers (including consumer NAS devices) only support explicit FTPS.