Rclone serve ftp over tls does not work anymore?

What is the problem you are having with rclone?

"rclone serve ftp" over tls was working great with version 1.64.2 and before, but I can't manage to make it work with version 1.65.0+. File listing hangs and my FileZilla client falls in timeout.

Run the command 'rclone version' and share the full output of the command.

rclone v1.68.2

  • os/version: ubuntu 24.04 (64 bit)
  • os/kernel: 6.8.0-49-generic (x86_64)
  • os/type: linux
  • os/arch: amd64
  • go/version: go1.23.3
  • go/linking: static
  • go/tags: none

Which cloud storage system are you using? (eg Google Drive)

pCloud

The command you were trying to run (eg rclone copy /tmp remote:tmp)

rclone serve ftp pcloud: --cert fullchain.pem --key privkey.pem --log-level DEBUG

The rclone config contents with secrets removed.

[pcloud]
type = pcloud
hostname = eapi.pcloud.com
token = ***

A log from the command with the -vv flag

2025/01/03 16:07:51 DEBUG : rclone: Version "v1.68.2" starting with parameters ["rclone" "serve" "ftp" "pcloud:" "--cert" "fullchain.pem" "--key" "privkey.pem" "--log-level" "DEBUG"]
2025/01/03 16:07:51 DEBUG : Creating backend with remote "pcloud:"
2025/01/03 16:07:51 DEBUG : Using config file from "[...]/rclone.conf"
2025/01/03 16:07:51 INFO  : pcloud root '': poll-interval is not supported by this remote
2025/01/03 16:07:51 NOTICE: pcloud root '': --vfs-cache-mode writes or full is recommended for this remote as it can't stream
2025/01/03 16:07:51 NOTICE: pcloud root '': Serving FTP on localhost:2121
2025/01/03 16:07:51 INFO  : : Rclone FTP Server listening on 2121
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: Connection Established
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 220 Welcome to Rclone v1.68.2 FTP Server
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: > USER anonymous
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 331 User name ok, password required
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: > PASS ****
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 230 Password ok, continue
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: > CLNT FileZilla
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 200 OK
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: > OPTS UTF8 ON
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 200 UTF8 mode enabled
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: > PBSZ 0
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 550 Action not taken
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: > PROT P
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 550 Action not taken
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: > PWD
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 257 "/" is the current directory
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: > TYPE I
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 200 Type set to binary
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: > PASV
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 227 Entering Passive Mode (127,0,0,1,124,10)
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: > MLSD
2025/01/03 16:08:59 DEBUG : /: Stat:
2025/01/03 16:08:59 DEBUG : /: >Stat: fi=&{FileInfo:/ mode:2147484159 owner:4294967295 group:4294967295}, err = <nil>
2025/01/03 16:08:59 DEBUG : /: ListDir:
2025/01/03 16:08:59 DEBUG : /: >ListDir: err = <nil>
2025/01/03 16:08:59 INFO  : e777b2c99d3aeec0e1f3: < 150 Opening ASCII mode data connection for file list
2025/01/03 16:09:19 INFO  : e777b2c99d3aeec0e1f3: < 226 Closing data connection, sent 391 bytes
2025/01/03 16:09:19 INFO  : e777b2c99d3aeec0e1f3: read error:read tcp 127.0.0.1:2121->127.0.0.1:63779: wsarecv: An established connection was aborted by the software in your host machine.
2025/01/03 16:09:19 INFO  : e777b2c99d3aeec0e1f3: Connection Terminated

Some more information on the tests I did

On Linux, I tried the following versions:
OK: 1.58.1, 1.60.0, 1.62.0, 1.63.0, 1.63.1, 1.64.0, 1.64.2
Not OK: 1.65.0, 1.68.2
When saying ok here, I tested the exact same command line, with the same config, same Linux user, same certificates...
When removing the --cert and --key parameters from the command line, disabling TLS, everything works fine whatever version used.
Done some quick tests under Windows 11: same issue on v1.68.2, and even on the 1.64.2. I only managed to make it works on v1.58.1 (but I hadn't tested any other versions).
Does someone manage to make v1.68.2 works with TLS? Did I missed something (I looked at the changelog, but found nothing major that could have impacted "serve ftp" function)?

Actually, it seems I've been fooled by FileZilla cache:
rclone serve ftp over tls is working well with version 1.63.1 and before, and causes issue with version 1.64.0 and after.