FTP is the File Transfer Protocol. FTP support is provided using the github.com/jlaffaye/ftp package.

Here is an example of making an FTP configuration. First run

rclone config

This will guide you through an interactive setup process. An FTP remote only needs a host together with and a username and a password. With anonymous FTP server, you will need to use anonymous as username and your email address as the password.

No remotes found - make a new one
n) New remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
n/r/c/s/q> n
name> remote
Type of storage to configure.
Choose a number from below, or type in your own value
 1 / Amazon Drive
   \ "amazon cloud drive"
 2 / Amazon S3 (also Dreamhost, Ceph, Minio)
   \ "s3"
 3 / Backblaze B2
   \ "b2"
 4 / Dropbox
   \ "dropbox"
 5 / Encrypt/Decrypt a remote
   \ "crypt"
 6 / FTP Connection 
   \ "ftp"
 7 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
 8 / Google Drive
   \ "drive"
 9 / Hubic
   \ "hubic"
10 / Local Disk
   \ "local"
11 / Microsoft OneDrive
   \ "onedrive"
12 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
13 / SSH/SFTP Connection
   \ "sftp"
14 / Yandex Disk
   \ "yandex"
Storage> ftp
FTP host to connect to
Choose a number from below, or type in your own value
 1 / Connect to ftp.example.com
   \ "ftp.example.com"
host> ftp.example.com
FTP username, leave blank for current username, ncw
FTP port, leave blank to use default (21)
FTP password
y) Yes type in my own password
g) Generate random password
y/g> y
Enter the password:
Confirm the password:
Remote config
host = ftp.example.com
user = 
port =
pass = *** ENCRYPTED ***
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

This remote is called remote and can now be used like this

See all directories in the home directory

rclone lsd remote:

Make a new directory

rclone mkdir remote:path/to/directory

List the contents of a directory

rclone ls remote:path/to/directory

Sync /home/local/directory to the remote directory, deleting any excess files in the directory.

rclone sync /home/local/directory remote:directory

Modified time

FTP does not support modified times. Any times you see on the server will be time of upload.


FTP does not support any checksums.

Standard Options

Here are the standard options specific to ftp (FTP Connection).


FTP host to connect to

  • Config: host
  • Type: string
  • Default: “”
  • Examples:
    • “ftp.example.com”
      • Connect to ftp.example.com


FTP username, leave blank for current username, ncw

  • Config: user
  • Type: string
  • Default: “”


FTP port, leave blank to use default (21)

  • Config: port
  • Type: string
  • Default: “”


FTP password

  • Config: pass
  • Type: string
  • Default: “”

Advanced Options

Here are the advanced options specific to ftp (FTP Connection).


Maximum number of FTP simultaneous connections, 0 for unlimited

  • Config: concurrency
  • Type: int
  • Default: 0


Note that since FTP isn’t HTTP based the following flags don’t work with it: --dump-headers, --dump-bodies, --dump-auth

Note that --timeout isn’t supported (but --contimeout is).

Note that --bind isn’t supported.

FTP could support server side move but doesn’t yet.

Note that the ftp backend does not support the ftp_proxy environment variable yet.

Share and Enjoy.