Syncthing: Open Source P2P File Syncing Tool

Brief: Syncthing is an open-source peer-to-peer file synchronization tool that you can use for syncing files between multiple devices (including an Android phone).

Usually, we have a cloud sync solution like MEGA or Dropbox to have a backup of our files on the cloud while making it easier to share it.

But, what do you do if you want to sync your files across multiple devices without storing them on the cloud?

That is where Syncthing comes to the rescue.

Syncthing: An open source tool to synchronize files across devices

Syncthing Screenshot

Syncthing lets you sync your files across multiple devices (including the support for Android smartphones). It primarily works through a web UI on Linux but also offers a GUI (to separately install).

However, Syncthing does not utilize the cloud at all – it is a peer-to-peer file synchronization tool. Your data doesn’t go to a central server. Instead, the data is synced with all the devices between them. So, it does not really replace the typical cloud storage services on Linux.

To add remote devices, you just need the device ID (or simply scan the QR code), no IP addresses involved.

If you want a remote backup of your files – you should probably rely on the cloud.

Syncthing Gtk
Syncthing GUI

All things considered, Syncthing can come in handy for a lot of things. Technically, you can have your important files accessible on multiple systems securely and privately without worrying about anyone spying on your data.

For instance, you may not want to store some of the sensitive files on the cloud – so you can add other trusted devices to sync and keep a copy of those files.

Even though I described it briefly, there’s more to it and than meets the eye. I’d also recommend reading the official FAQ to clear some confusion on how it works – if you’re interested.

Features of Syncthing

You probably do not want a lot of options in a synchronization tool – it should be dead simple to work reliably to sync your files.

Syncthing is indeed quite simple and easy to understand – even though it is recommended that you should go through the documentation if you want to use every bit of its functionality.

Here, I’ll highlight a few useful features of Syncthing:

Cross-Platform Support

Syncthing Android
Syncthing on Android

Being an open-source solution, it does support Windows, Linux, and macOS.

In addition to that, it also supports Android smartphones. You’ll be disappointed if you have an iOS device – so far, no plans for iOS support.

File Versioning

Syncthing File Versioning
Syncthing File Versioning

Syncthing utilizes a variety of File Versioning methods to archive the old files if they are replaced or deleted.

By default, you won’t find it enabled. But, when you create a folder to sync, that’s when you will find the option to toggle the file versioning to your preferred method.

Easy To Use

While being a peer-to-peer file synchronization tool, it just works out of the box with no advanced tweaks.

However, it does let you configure advanced settings when needed.

Security & Privacy

Even though you do not share your data with any cloud service providers, there are still some connections made that might gain the attention of an eavesdropper. So, Syncthing makes sure the communication is secured using TLS.

In addition to that, there are solid authentication methods to ensure that only the devices/connections you allow explicitly will be granted access to sync/read data.

For Android smartphones, you can also force the traffic through Tor if you’re using the Orbot app. You’ll find several other options for Android as well.

Other Functionalities

Syncthing Screenshot1

When exploring the tool yourself, you will notice that there are no limits to how many folders you can sync and the number of devices that you can sync.

So, being a free and open-source solution with lots of useful features makes it an impressive choice for Linux users looking to have a peer-to-peer sync client.

Installing Syncthing on Linux

You may not observe a .deb file or an .AppImage file for it on its official download webpage. But, you do get a snap package on the Snap store – if you’re curious you can read about using snap apps on Linux to get started.

You may not find it in the software center (if you do – it may not be the latest version).

Note: There’s also a Syncthing-GTK available if you want a GUI to manage that – instead of a browser.

You can also utilize the terminal to get it installed if you have a Debian-based distro – the instructions are on the official download page.

My experience with Syncthing

Personally, I got it installed on Pop!_OS 19.10 and used it for a while before writing this up.

I tried syncing folders, removing them, adding duplicate files to see how the file versioning works, and so on. It worked just fine.

However, when I tried syncing it to a phone (Android) – the sync started a bit late, it wasn’t very quick. So, if we could have an option to explicitly force sync, that could help. Or, did I miss the option? Let me know in the comments if I did.

Technically, it uses the resources of your system to work – so if you have a number of devices connected to sync, it should potentially improve the sync speed (upload/download).

Overall, it works quite well – but I must say that you shouldn’t rely on it as the only backup solution to your data.

Wrapping Up

Have you tried Syncthing yet? If yes, how was your experience with it? Feel free to share it in the comments below.

Also, if you know about some awesome alternatives to this – let me know about it as well.

Similar Posts

  • I’ve been looking for a way to back up photos and videos from Android phones to a Linux desktop, and have found it rather ridiculously difficult (it seems Big Brother would rather you use His cloud services). You’d think you could connect with a USB cable and, after saying Allow to the prompt for permission on the phone, have the phone’s storage mount like a USB stick, but no. That works (sort of) with my Android phone, but not with my wife’s (for reasons I can’t fathom). I’ve tried Airdroid, but was not quite convinced. I tried an SSH client for Android thinking I might be able to rsync, but no, there are permission issues (you’d think you would have permission to navigate your own filesystem!).

    So now I’m considering Syncthing, and wondering if anyone here has had good experience with Android-to-Linux-desktop. I also want to go one-way, that is, back up phone to Desktop but not vice-versa, and it looks like Syncthing lets you configure it that way.

      • Yeah, I tried Airdroid and wasn’t really all that impressed. Not that it isn’t a very impressive project. I just don’t need a GUI, I just want to do something similar to rsync and boom, all done.

    • Syncthing will absolutely let you do that 😀👍 Setup your phone as “Read only” device, and all new files will be synced to your desktop 👍

      Do note: this is indeed not a real “backup”.

      Also: Android is funny with sd-card permissions. You can only create a “read only” share unless you have rooted your device.


    • Send Anywhere does this perfectly. Cross platform and transfers files one way. The receiving device receives a pin number to give to the sending device for security. Transfers over your local wi-fi, no cloud though I think they offer cloud as a premium service. The free version has no transfer limits but does have ads but the ads are not that annoying. I transferred 60 gb from my linux laptop to my android phone with no issues. Highly recommend Send Anywhere.

  • Using it for about a year now, syncing 4 devices, from Linux to Android. Very reliable, nice granular way of configuring syncing directories. Great software.

    Your article says: “but I must say that you shouldn’t rely on it as the only backup solution to your data”. No, not at all. Syncing is completely different from making backups! Think of the “deleted here, means deleted there too” effect of syncing.

  • Now this sounds like a great idea, although that’s how this stuff should work in the first place. I remember using VPN’s all the way back in Windows 3.1, where you would setup a private connection to anyone you wanted to, NO MIDDLEMAN to change the meaning of “virtual” from as in not a hard wired persistent connection to “Virtual” as in not really private, as they can look at and analyse your data, and sell it!

  • I am using Syncthing on macOS since a couple of months and it’s a great product. A little bit rough, but very fast and reliable. Needs some time to understand its somewhat unusual logic, tough.