2015-07-30 20:26:29 +01:00
---
title: "FAQ"
description: "Rclone Frequently Asked Questions"
---
2025-07-10 18:36:44 +02:00
<!-- markdownlint-disable heading-increment -->
2015-07-30 20:26:29 +01:00
2021-09-25 21:09:48 +02:00
# Frequently Asked Questions
2015-07-30 20:26:29 +01:00
2025-07-10 15:20:41 +02:00
### Do all cloud storage systems support all rclone commands
2015-07-30 20:26:29 +01:00
2020-10-13 18:07:12 -04:00
Yes they do. All the rclone commands (e.g. `sync` , `copy` , etc.) will
2015-07-30 20:26:29 +01:00
work on all the remote storage systems.
2025-07-10 15:20:41 +02:00
### Can I copy the config from one machine to another
2015-08-27 19:46:28 +01:00
Sure! Rclone stores all of its config in a single file. If you want
2019-01-13 17:56:57 +00:00
to find this file, run `rclone config file` which will tell you where
it is.
2015-08-27 19:46:28 +01:00
2016-01-07 15:20:32 +00:00
See the [remote setup docs ](/remote_setup/ ) for more info.
2015-08-27 19:46:28 +01:00
2025-07-10 15:20:41 +02:00
### How do I configure rclone on a remote / headless box with no browser?
2015-08-27 19:46:28 +01:00
2016-01-07 15:20:32 +00:00
This has now been documented in its own [remote setup page ](/remote_setup/ ).
2015-08-27 19:46:28 +01:00
2025-05-06 22:21:36 -05:00
### How can I get rid of the "Config file not found" notice?
If you see a notice like 'NOTICE: Config file "rclone.conf" not found', this
means you have not configured any remotes.
If you need to configure a remote, see the [config help docs ](/docs/#configure ).
If you are using rclone entirely with [on the fly remotes ](/docs/#backend-path-to-dir ),
you can create an empty config file to get rid of this notice, for example:
2025-10-31 21:58:24 +01:00
```console
2025-05-06 22:21:36 -05:00
rclone config touch
```
2025-07-10 15:20:41 +02:00
### Can rclone sync directly from drive to s3
2015-07-30 20:26:29 +01:00
Rclone can sync between two remote cloud storage systems just fine.
Note that it effectively downloads the file and uploads it again, so
the node running rclone would need to have lots of bandwidth.
The syncs would be incremental (on a file by file basis).
2022-05-12 21:23:48 +02:00
e.g.
2015-07-30 20:26:29 +01:00
2025-10-31 21:58:24 +01:00
```console
2025-07-10 14:09:07 +02:00
rclone sync --interactive drive:Folder s3:bucket
```
2015-07-30 20:26:29 +01:00
2025-07-10 15:20:41 +02:00
### Using rclone from multiple locations at the same time
2015-08-16 14:07:13 +01:00
You can use rclone from multiple places at the same time if you choose
2020-10-13 17:49:58 -04:00
different subdirectory for the output, e.g.
2015-08-16 14:07:13 +01:00
2025-10-31 21:58:24 +01:00
```console
2023-01-20 21:47:36 +01:00
Server A> rclone sync --interactive /tmp/whatever remote:ServerA
Server B> rclone sync --interactive /tmp/whatever remote:ServerB
2015-08-16 14:07:13 +01:00
```
If you sync to the same directory then you should use rclone copy
2020-10-13 17:49:58 -04:00
otherwise the two instances of rclone may delete each other's files, e.g.
2015-08-16 14:07:13 +01:00
2025-10-31 21:58:24 +01:00
```console
2015-08-16 14:07:13 +01:00
Server A> rclone copy /tmp/whatever remote:Backup
Server B> rclone copy /tmp/whatever remote:Backup
```
The file names you upload from Server A and Server B should be
2020-10-13 17:49:58 -04:00
different in this case, otherwise some file systems (e.g. Drive) may
2015-08-16 14:07:13 +01:00
make duplicates.
2015-08-31 12:47:07 +01:00
2025-07-10 15:20:41 +02:00
### Why doesn't rclone support partial transfers / binary diffs like rsync?
2015-08-31 12:47:07 +01:00
Rclone stores each file you transfer as a native object on the remote
cloud storage system. This means that you can see the files you
2020-10-13 17:49:58 -04:00
upload as expected using alternative access methods (e.g. using the
2015-08-31 12:47:07 +01:00
Google Drive web interface). There is a 1:1 mapping between files on
your hard disk and objects created in the cloud storage system.
Cloud storage systems (at least none I've come across yet) don't
support partially uploading an object. You can't take an existing
object, and change some bytes in the middle of it.
It would be possible to make a sync system which stored binary diffs
2024-05-16 23:35:42 +10:00
like rsync does, instead of whole objects, but that would break the
2015-08-31 12:47:07 +01:00
1:1 mapping of files on your hard disk to objects in the remote cloud
storage system.
All the cloud storage systems support partial downloads of content, so
it would be possible to make partial downloads work. However to make
this work efficiently this would require storing a significant amount
of metadata, which breaks the desired 1:1 mapping of files to objects.
2015-09-02 08:33:18 +01:00
2025-07-10 15:20:41 +02:00
### Can rclone do bi-directional sync?
2015-09-02 08:33:18 +01:00
2022-10-23 15:45:09 +05:30
Yes, since rclone v1.58.0, [bidirectional cloud sync ](/bisync/ ) is
available.
2015-10-30 12:06:11 +01:00
2025-07-10 15:20:41 +02:00
### Can I use rclone with an HTTP proxy?
2015-10-30 12:06:11 +01:00
2018-11-23 14:58:32 -05:00
Yes. rclone will follow the standard environment variables for
proxies, similar to cURL and other programs.
2015-10-30 12:06:11 +01:00
2018-11-23 14:58:32 -05:00
In general the variables are called `http_proxy` (for services reached
over `http` ) and `https_proxy` (for services reached over `https` ). Most
public services will be using `https` , but you may wish to set both.
2015-10-30 12:06:11 +01:00
2018-11-23 14:58:32 -05:00
The content of the variable is `protocol://server:port` . The protocol
value is the one used to talk to the proxy server, itself, and is commonly
either `http` or `socks5` .
2025-07-10 22:04:43 +02:00
Slightly annoyingly, there is no * standard * for the name; some applications
2018-11-23 14:58:32 -05:00
may use `http_proxy` but another one `HTTP_PROXY` . The `Go` libraries
used by `rclone` will try both variations, but you may wish to set all
possibilities. So, on Linux, you may end up with code similar to
2025-10-31 21:58:24 +01:00
```console
2025-07-10 14:09:07 +02:00
export http_proxy=http://proxyserver:12345
export https_proxy=$http_proxy
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$http_proxy
```
2015-10-30 12:06:11 +01:00
2022-11-15 12:58:43 -05:00
Note: If the proxy server requires a username and password, then use
2025-10-31 21:58:24 +01:00
```console
2025-07-10 14:09:07 +02:00
export http_proxy=http://username:password@proxyserver:12345
export https_proxy=$http_proxy
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$http_proxy
```
2022-11-15 12:58:43 -05:00
2015-10-30 12:06:11 +01:00
The `NO_PROXY` allows you to disable the proxy for specific hosts.
Hosts must be comma separated, and can contain domains or parts.
For instance "foo.com" also matches "bar.foo.com".
2015-11-05 18:07:37 +00:00
2018-11-23 14:58:32 -05:00
e.g.
2025-10-31 21:58:24 +01:00
```console
2025-07-10 14:09:07 +02:00
export no_proxy=localhost,127.0.0.0/8,my.host.name
export NO_PROXY=$no_proxy
```
2018-11-23 14:58:32 -05:00
2022-06-19 18:59:54 +02:00
Note that the FTP backend does not support `ftp_proxy` yet.
2019-01-29 09:47:16 +00:00
2025-07-02 17:20:58 +01:00
You can use the command line argument `--http-proxy` to set the proxy,
and in turn use an override in the config file if you want it set for
a single backend, eg `override.http_proxy = http://...` in the config
file.
The FTP and SFTP backends have their own `http_proxy` settings to
support an HTTP CONNECT proxy (
[--ftp-http-proxy ](https://rclone.org/ftp/#ftp-http-proxy ) and
[--sftp-http-proxy ](https://rclone.org/ftp/#sftp-http-proxy ) )
2025-08-21 01:50:33 +08:00
### Rclone gives x509 SSL root certificates error
2015-11-05 18:07:37 +00:00
2025-08-21 01:50:33 +08:00
`x509: failed to load system roots and no roots provided` means that `rclone` can't
find the SSL root certificates. Likely you are running `rclone` on a NAS with
a cut-down Linux OS, or possibly on Solaris.
`x509: certificate signed by unknown authority` error may occur on outdated systems,
where `rclone` can't verify the server with the SSL root certificates.
2015-11-05 18:07:37 +00:00
Rclone (via the Go runtime) tries to load the root certificates from
these places on Linux.
2025-10-31 21:58:24 +01:00
```text
2025-07-10 14:09:07 +02:00
"/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc.
"/etc/pki/tls/certs/ca-bundle.crt", // Fedora/RHEL
"/etc/ssl/ca-bundle.pem", // OpenSUSE
"/etc/pki/tls/cacert.pem", // OpenELEC
```
2015-11-05 18:07:37 +00:00
So doing something like this should fix the problem. It also sets the
time which is important for SSL to work properly.
2025-10-31 21:58:24 +01:00
```console
2015-11-05 18:07:37 +00:00
mkdir -p /etc/ssl/certs/
curl -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
ntpclient -s -h pool.ntp.org
```
2016-02-16 14:55:26 +00:00
2025-07-10 13:53:45 +02:00
The two environment variables `SSL_CERT_FILE` and `SSL_CERT_DIR` , mentioned in
the [x509 package ](https://godoc.org/crypto/x509 ), provide an additional way to
2025-08-19 21:44:02 +02:00
provide the SSL root certificates on Unix systems other than macOS.
2018-01-15 22:32:37 +01:00
2025-07-10 13:53:45 +02:00
Note that you may need to add the `--insecure` option to the `curl` command line
if it doesn't work without.
2016-02-16 14:55:26 +00:00
2025-10-31 21:58:24 +01:00
```console
2016-02-16 14:55:26 +00:00
curl --insecure -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
```
2016-02-21 13:59:24 +00:00
2025-08-21 01:50:33 +08:00
On macOS, you can install
[ca-certificates ](https://formulae.brew.sh/formula/ca-certificates ) with
Homebrew, and specify the SSL root certificates with the
[--ca-cert ](/docs/#ca-cert-stringarray ) flag.
2025-10-31 21:58:24 +01:00
```console
2025-08-21 01:50:33 +08:00
brew install ca-certificates
find $(brew --prefix)/etc/ca-certificates -type f
```
2025-07-10 15:20:41 +02:00
### Rclone gives Failed to load config file: function not implemented error
2016-02-21 13:59:24 +00:00
Likely this means that you are running rclone on Linux version not
supported by the go runtime, ie earlier than version 2.6.23.
See the [system requirements section in the go install
docs](https://golang.org/doc/install) for full details.
2016-04-12 21:41:24 +01:00
2025-07-10 15:20:41 +02:00
### All my uploaded docx/xlsx/pptx files appear as archive/zip
2016-04-12 21:41:24 +01:00
This is caused by uploading these files from a Windows computer which
hasn't got the Microsoft Office suite installed. The easiest way to
fix is to install the Word viewer and the Microsoft Office
Compatibility Pack for Word, Excel, and PowerPoint 2007 and later
versions' file formats
2017-07-27 18:20:25 +02:00
2025-07-10 15:20:41 +02:00
### tcp lookup some.domain.com no such host
2017-07-27 18:20:25 +02:00
This happens when rclone cannot resolve a domain. Please check that
your DNS setup is generally working, e.g.
2025-07-10 14:17:42 +02:00
```sh
2017-07-27 18:20:25 +02:00
# both should print a long list of possible IP addresses
dig www.googleapis.com # resolve using your default DNS
dig www.googleapis.com @8 .8.8.8 # resolve with Google's DNS server
```
If you are using `systemd-resolved` (default on Arch Linux), ensure it
is at version 233 or higher. Previous releases contain a bug which
causes not all domains to be resolved properly.
2018-01-15 22:32:37 +01:00
2023-03-28 16:24:37 +02:00
The Go resolver decision can be influenced with the `GODEBUG=netdns=...`
environment variable. This also allows to resolve certain issues with
DNS resolution. On Windows or MacOS systems, try forcing use of the
internal Go resolver by setting `GODEBUG=netdns=go` at runtime. On
other systems (Linux, \*BSD, etc) try forcing use of the system
name resolver by setting `GODEBUG=netdns=cgo` (and recompile rclone
from source with CGO enabled if necessary). See the
[name resolution section in the go docs ](https://golang.org/pkg/net/#hdr-Name_Resolution ).
2019-03-07 17:43:06 +00:00
2025-07-10 15:20:41 +02:00
### Failed to start auth webserver on Windows
2025-07-10 13:56:54 +02:00
2025-07-10 14:17:42 +02:00
```text
2023-06-25 12:20:54 +02:00
Error: config failed to refresh token: failed to start auth webserver: listen tcp 127.0.0.1:53682: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
...
yyyy/mm/dd hh:mm:ss Fatal error: config failed to refresh token: failed to start auth webserver: listen tcp 127.0.0.1:53682: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
```
2025-07-10 13:53:45 +02:00
This is sometimes caused by the Host Network Service causing issues with opening
the port on the host.
2023-06-25 12:20:54 +02:00
A simple solution may be restarting the Host Network Service with eg. Powershell
2025-07-10 13:56:54 +02:00
2025-08-26 22:13:53 +02:00
```powershell
2023-06-25 12:20:54 +02:00
Restart-Service hns
```
2019-03-07 17:43:06 +00:00
### The total size reported in the stats for a sync is wrong and keeps changing
It is likely you have more than 10,000 files that need to be
2021-11-04 08:50:43 -03:00
synced. By default, rclone only gets 10,000 files ahead in a sync so as
2019-03-07 17:43:06 +00:00
not to use up too much memory. You can change this default with the
2025-01-17 12:57:00 +01:00
[--max-backlog ](/docs/#max-backlog-int ) flag.
2019-06-12 11:08:19 +01:00
### Rclone is using too much memory or appears to have a memory leak
Rclone is written in Go which uses a garbage collector. The default
settings for the garbage collector mean that it runs when the heap
size has doubled.
However it is possible to tune the garbage collector to use less
memory by [setting GOGC ](https://dave.cheney.net/tag/gogc ) to a lower
value, say `export GOGC=20` . This will make the garbage collector
work harder, reducing memory size at the expense of CPU usage.
The most common cause of rclone using lots of memory is a single
2025-07-10 13:55:22 +02:00
directory with millions of files in.
2024-12-09 11:30:34 +00:00
Before rclone v1.70 has to load this entirely into memory as rclone
objects. Each rclone object takes 0.5k-1k of memory. There is
2024-07-30 09:41:54 +01:00
[a workaround for this ](https://github.com/rclone/rclone/wiki/Big-syncs-with-millions-of-files )
which involves a bit of scripting.
2021-11-01 13:46:23 +01:00
2024-12-09 11:30:34 +00:00
However with rclone v1.70 and later rclone will automatically save
directory entries to disk when a directory with more than
[`--list-cutoff` ](/docs/#list-cutoff ) (1,000,000 by default) entries
is detected.
2025-02-15 18:04:09 +00:00
From v1.70 rclone also has the [--max-buffer-memory ](/docs/#max-buffer-memory )
flag which helps particularly when multi-thread transfers are using
too much memory.
2021-11-01 13:46:23 +01:00
### Rclone changes fullwidth Unicode punctuation marks in file names
For example: On a Windows system, you have a file with name `Test:1.jpg` ,
where `:` is the Unicode fullwidth colon symbol. When using rclone
to copy this to your Google Drive, you will notice that the file
gets renamed to `Test:1.jpg` , where `:` is the regular (halfwidth) colon.
The reason for such renames is the way rclone handles different
[restricted filenames ](/overview/#restricted-filenames ) on different
cloud storage systems. It tries to avoid ambiguous file names as
much and allow moving files between many cloud storage systems
transparently, by replacing invalid characters with similar looking
Unicode characters when transferring to one storage system, and replacing
back again when transferring to a different storage system where the
original characters are supported. When the same Unicode characters
are intentionally used in file names, this replacement strategy leads
2025-07-10 14:00:54 +02:00
to unwanted renames. Read more under section [caveats ](/overview/#restricted-filenames-caveats ).