P2P file synchronization on Android with Syncthing

  • Syncthing synchronizes P2P files between Android and other devices without using cloud servers.
  • Security is based on end-to-end encryption, unique device IDs, and mutual approval.
  • It allows you to define flexible folder types and clusters for backups, work, and advanced sharing.
  • Combined with servers, Raspberry Pi, or clients like Sync Train, it creates a multi-platform private cloud.

How to sync P2P files on Android with Syncthing

If you're tired of relying on Google Drive, Dropbox, or similar services to move files between your devices, Syncthing on Android It's probably exactly what you were looking for. It allows true P2P (peer-to-peer) file synchronization, without cloud services, keeping your data always under your control and transmitted end-to-end encrypted.

In this article, you'll see how Syncthing works, how to use it on Android, and how to integrate it with computers, servers, Raspberry Pi, and even iOS using compatible clients like Sync Train. All with a practical approach. explaining step by step the actual synchronization flow, folder types, the security model, and various tricks to get the most out of it without messing things up with conflicts or data loss.

What is Syncthing and why is it different from the classic “cloud”?

Syncthing is a P2P continuous file synchronization system It connects devices directly to each other, without a central server where your data is stored. It is distributed as free software under the MPL 2.0 license, is developed in Go, and uses its own block exchange protocol, known as Block Exchange Protocoldesigned to be efficient and safe.

Instead of uploading your files to third-party servers, Syncthing works with a "BYO cloud" (Bring Your Own) model: You provide the machines, you decide where the files are stored and with whom they are shared. It can run on Windows, macOS, GNU/Linux, FreeBSD, Solaris, OpenBSD, Android, Docker containers, and even on small devices like a Raspberry Pi.

The main idea is very simple: synchronize one or more folders across multiple devices in real time. Each device has a unique identifier, and you decide which devices connect, which folders they share, and in which direction they synchronize (send and receive, send only, or receive only).

sync files
Related article:
How to sync files between Windows and Android with and without SMB

Key advantages of Syncthing for Android and other devices

When used on Android in conjunction with your PC, server, or NAS, Syncthing solves several common problems associated with traditional cloud solutions. Among others, these advantages stand out:

  • Real privacy: The files are saved only on your devices or those of trusted people, without copies on third-party servers.
  • Open source and auditable: Anyone can review the code, check for backdoors, and contribute to the project.
  • Fully multiplatform: It works on almost any current system, from desktop computers to Android mobiles or Docker containers.
  • No space limits imposed by third parties: The only limit is the size of the disks in your machines.
  • Real-time synchronization: The changes spread immediately as soon as the devices are connected.
  • High level of control: You choose which folders are shared, with whom, in what direction they are synchronized, and which file patterns are ignored.

Specifically on Android, Syncthing is perfect for automating copies of photos, documents, or downloads. to your PC or local server, thus avoiding dependence on Google Photos, Google Drive, or similar services. It also allows you to sync notes (Obsidian, Joplin, etc.) or any folder on your internal storage.

Syncthing-Fork
Syncthing-Fork
Developer: nel0x
Price: Free

Encryption, security and privacy in P2P synchronization

The safety aspect is not a minor detail: All connections in Syncthing are end-to-end encrypted using TLS. Each device generates its own certificate and private key the first time it boots up, and the device identifier is derived from that data.

This has several important consequences that should be well understood in order to use Syncthing wisely:

  • The devices must be mutually approved: Even if someone has your device ID, they will not be able to connect unless you accept that relationship from your Syncthing interface.
  • The data travels encrypted: Neither relay servers nor discovery servers can read the contents of your files.
  • Some metadata is displayed: Each connected device sees the IP address, operating system, and Syncthing version of the others, as well as their status (connected, disconnected, syncing).
  • You can use your own servers: If you want maximum privacy, it is possible to set up your own global discovery server and your own repeaters.

Although Syncthing does not require a "central server" to store files, Yes, it uses several auxiliary services to function properly over the Internet:

  • Global discovery server: helps two devices find each other by their ID even if their IP address changes.
  • Repeaters (relays): They serve as a bridge when it is not possible to open ports or use UPnP on the router.
  • Relay list server: catalog of available repeaters.
  • Update server: where the program checks for new versions.
  • Anonymous statistics server: optional, to send usage data and help improve the project.

All these components can be disabled or replaced with custom instances, but for most Android + PC home users There's no need to complicate things: the default settings are safe and sufficient.

Install and start Syncthing on Android

P2P file synchronization on Android with Syncthing

On Android, you have several options for obtaining the client. The most common is to install Syncthing for Android from Google Play or F-Droid, which acts as a native wrapper around the Syncthing core and offers an interface designed specifically for mobile devices.

After installing the app, The first thing that will appear is an initial setup wizard This is where the device ID, default folders, and some permissions are created. This is where Android starts to "bother" you with the classic permission prompts:

  • Storage access: This is essential for reading and writing to the folders you want to sync. You'll see a "Grant permission" button that you must accept.
  • Location Permission: Syncthing doesn't track your location, but Android requires apps to request this permission when they want to. detect the WiFi network you are onSyncthing needs this if you want to limit synchronization to certain networks (for example, only on your home WiFi).

Once you have completed these steps, the application will show you its main screen, which is usually organized into tabs: folders (or similar), devices, and access to the web interfaceFrom here you can start or stop the service, check the synchronization status and access the settings.

Using the web interface on Android and other devices

Although the Android app has its own graphical interface, The most powerful and consistent way to manage Syncthing remains the web interfacewhich is the same across all systems (PC, server, Raspberry Pi, Android, etc.).

From the Android app, you can open that web interface using a menu option. In many cases, it works within the app itself, but if you notice something is wrong or not responding correctly, You can open Syncthing in your mobile browser by pointing to the local address that the app tells you (usually 127.0.0.1:8384).

Syncthing's web interface is structured into several clearly differentiated areas, which you will see the same on both your smartphone and your computer:

  • Top menu with general actions (Settings, Show ID, etc.).
  • Notification area with important alerts and messages.
  • List of Folders with its synchronization status, size, progress, and type.
  • "This device" section with a summary of CPU usage, RAM, upload/download speeds, and more.
  • List of Other devices connected or known.
  • Pop-up dialogs at the bottom of the page when you create or edit something (folders, devices, etc.).

The experience is responsive, so On mobile, it adapts well to small screensAnd the best part: once you get used to this interface, you'll use it exactly the same way on your Android, your PC, or your Raspberry Pi.

Link Android to your PC, server, or Raspberry Pi

The essence of Syncthing is to connect devices to each other. Each device has a unique ID.which is a relatively long alphanumeric string. It doesn't depend directly on the physical machine, but on the certificate and configuration used by Syncthing, so it can be migrated from one machine to another by moving its internal data (without running the same instance twice).

To add devices To synchronize folders between your Android device and, for example, your PC or a Raspberry Pi, you need to follow a fairly simple ritual:

Alternatives to KDE Connect for connecting Android and Linux
Related article:
Alternatives to KDE Connect for connecting Android and Linux
  1. Get your Android ID: In the web interface or the app, go to “Actions” > “Show ID”. You will see the identifier text and a QR code.
  2. Obtain the ID of the other device: On your PC, server, or Raspberry Pi, also go to "Show ID" in its web interface.
  3. Add the remote device on Android: From the Devices tab, select “Add” and scan the PC’s QR code, or copy its ID manually. Assign an easy-to-recognize name (for example, “Raspberry Room” or “Office PC”).
  4. Add the Android device to the PC/server: On your computer, create a new device and paste your mobile ID (or scan the QR code if you have a code reader). Leave the address as "dynamic" unless you want something very specific.
  5. Accept the connection on both sides: When one device is added to the other, a notification will appear asking you to confirm that you want to link them. The relationship will not be established until both sides accept.

This system of “mutual request and acceptance” may seem a bit cumbersome at first, but This is key to preventing someone with your ID from connecting without your permission.For example, if you have written your identifier down on a piece of paper and it ends up in someone else's hands.

Sync folders between Android and other devices

Once the devices are known, the interesting part arrives: decide which folders you want to sync and howSyncthing always works on folders, and each folder is identified by:

  • An Golden Label (human-readable name).
  • An absolute path (actual directory in the file system).
  • Un Folder ID internal that is used to link the same folder between devices.

On Android, for example, you'll see a predefined folder called "Camera" or "Photos," designed to sync photos from your phone. On a Raspberry Pi or a PC, you might have a default folder called "Default Folder" that points to a specific system path.

To create or adjust a typical shared folder, such as synchronize the mobile downloads folder with a serverDo something like this:

  1. On your Android device, tap on “Add folder”.
  2. Choose one recognizable label, such as “Mobile Downloads”.
  3. Specify the local path (for example, /storage/emulated/0/Download).
  4. Mark the devices you want to share it with in the sharing tab (home PC, Raspberry Pi, etc.).
  5. Save the changes. You will see the new folder listed on the main screen.

On the other device (PC, Raspberry Pi, etc.) A warning will appear. Your phone wants to share a folder called “Mobile Downloads”. By accepting, you will need to:

  • Choose a local name (it can be different, for example “Nexus Downloads”).
  • Select the destination path where the files will be saved on that device.
  • Make sure that path has sufficient write permissions.

When you accept, Syncthing will create (if it doesn't already exist) the corresponding directory tree and The content will begin to synchronize.Progress will be shown with bars turning blue and the status "Synchronizing…", until all files are transferred.

Folder types: send and receive, send only, receive only

Not all synchronizations are the same. Syncthing allows you to define the type of folder that you want on each device to adjust the flow of changes:

  • Send and receive: This is the default mode. Any changes (creating, modifying, or deleting files) you make in that folder will be propagated to all other devices, and vice versa.
  • Send only: The device acts as the data "source." Others receive the changes, but what they do is not reflected back to this device.
  • Receive Only: The machine only accepts changes from outside, but local modifications are not propagated. Syncthing will detect differences and offer to revert them to keep the content "stuck" to the source.

In each folder you can choose this behavior from the edit dialog, usually by entering the section of Advanced OptionsThis is very useful, for example, for:

  • use your Android as a source of photos (camera folder in send-only mode) to a copy server.
  • Having a web server that only receives changes from your development PC, without returning temporary or generated files.
  • Mount one-way backups towards a NAS or an external hard drive connected to a Raspberry Pi.

The key is that The folder type configuration is defined independently on each deviceSo you can combine modes depending on the role each machine has in your architecture.

Clusters, presenters and introducers: scaling the P2P network

Once you move beyond the basic “Android + PC” scenario and start having multiple computers, mobiles, and servers synchronized, it’s helpful to understand how Syncthing organizes devices into a clusterA cluster is simply a group of machines that share one or more folders with each other.

If, for example, you have devices A (your PC), B (your laptop), and C (your server), at first it is likely that Let A be the common link that knows them allThis implies that any transfer between B and C would have to go through A if A is not configured to "present" devices to each other.

To solve this, Syncthing provides the figure of the “Introduce” or presenterWhen you mark a device as a presenter, you are telling it:

  • “Any device this team adds, you automatically submit it to me.” so that it also appears on my list.
  • "And the same goes for the folders that I share with those new devices."

This mechanism makes it so that:

  • If a device with the presenter role shuts down its equipment, the others can still talk to each other because they already know each other directly.
  • Transfers are better distributed: each node can send data to several, without a single "bottle".

There is also the possibility of creating what is called a mesh clusterwhere all devices are presenters and "present" to each other. Although it is possible, Not recommended In most cases, this is because when a device is removed from the network, information about it can continue to circulate, resulting in lists full of "ghosts" that are difficult to erase. Syncthing even alerts you when it detects a presenter at both ends of a connection.

File conflicts, versions, and best practices

As with any synchronization system, Conflicts may occur If two devices modify the same file almost simultaneously, Syncthing attempts to minimize these situations thanks to its block protocol and efficient scanning that detects only real changes, but it can't work miracles.

When there is a conflict, the typical behavior is Rename the oldest file by adding a suffix like “sync-conflict” with date and timeThis way, no information is lost, and you can decide which version to keep. However, if you work with many simultaneous edits of the same file, you may end up with several conflicting copies.

Joplin app, encrypted notes on Android
Related article:
Why Joplin is the best choice for your encrypted notes on Android

For this reason, it is advisable to avoid certain uses in Syncthing:

  • Do not synchronize monolithic databases from multiple users (Access, SQLite…) that are opened simultaneously from multiple computers.
  • Do not use it as a real-time collaborative editing system of documents (for that, something like OnlyOffice, Google Docs, etc. is better).
  • Do not attempt to use it as a messaging system or impromptu chat saving files as messages.

There is a very useful third-party client for Windows, SyncTrayzorwhich is responsible for starting Syncthing in the background, integrating into the system tray, displaying notifications, and Facilitate file conflict resolution with a more user-friendly interface.

On Android, the official app already handles the service, but it's worth keeping in mind that if you edit the same document in multiple places at the same time You may encounter duplicate versions marked as conflicting and you will have to clean them up manually.

Syncthing on Android and iOS: Integration with Sync Train

Although Syncthing for pure iOS does not exist as an official application.Yes, there are projects that act as frontend clients on the Syncthing core, such as Sync TrainThis app is designed specifically for iPhones and iPads and offers a convenient interface for managing devices, folders, and selective syncing.

An interesting common scenario is to combine:

  • Syncthing on Android as the main synchronization engine on your mobile.
  • Sync Train on iOS as an interface and client for your iPhone or iPad.
  • Tu PC or server as a central or "always on" node where complete copies are stored.

With this architecture it is possible to have Bidirectional and encrypted synchronization between Android and iOSWithout paying cloud service fees or sharing your data with third-party providers. Furthermore, Sync Train allows you to play on-demand multimedia content from your iOS device without necessarily having to store all the content locally.

Once the initial setup curve is overcome, the experience reported by many users is similar: Fast, stable, and completely private synchronization for photos, videos, documents and other files between both mobile ecosystems.

Syncthing on Raspberry Pi, NAS and servers: persistent node

Another very powerful component of the Syncthing ecosystem is the use of Raspberry Pi, NAS or VPS as a “permanent node”This means that the device remains switched on most of the time and acts as:

  • Central backup repository.
  • Meeting point between devices that are not connected at the same time.
  • Equipment that downloads or processes files and then serves them to others.

On GNU/Linux systems, for example, you can install Syncthing from its own repository (on Debian, Ubuntu and derivatives, by adding the repository https://apt.syncthing.net/ with a “syncthing” distribution and a “stable” section) and enable it as a service with:

  • systemctl enable syncthing@usuario
  • systemctl start syncthing@usuario

On a Raspberry Pi designed to act as a file server, it is very common to edit the configuration file. config.xml all with Open the web interface to other machines on the local networkThe section address is usually changed from 127.0.0.1:8384 to 0.0.0.0:8384, so that you can manage Syncthing from your PC's browser.

This type of permanent node fits very well when you use Android as a source of photos and documentsFor example, you can have the mobile phone's "Camera" folder always synced to an external drive connected to the Raspberry Pi, and from there to the rest of the computers on the network.

Practical use cases with Android and more

With all of the above, it's easy to imagine very specific use cases where Syncthing shines especially when one of the devices is Android:

  • Personal synchronization between devices: You have a shared working folder across your Android device, desktop PC, and laptop. Any changes made on one device are reflected on the others without going through the cloud.
  • Local photo backup: The phone simply sends the camera folder to a server or NAS, which then acts as a receiver. Every photo you take is automatically stored at home.
  • Share files with trusted collaborators: You set up a shared folder between your team and other people's (family, colleagues) for exchanging large documents without relying on WeTransfer or Dropbox.
  • Synchronization of notes and projects: You synchronize entire application directories like Obsidian or Joplin between your Android and your computer, keeping your notes always up-to-date without proprietary services.

In all these scenarios, The key lies in the fine-tuning of folder types and the devices you share with., taking advantage of Syncthing's flexibility to adapt to your way of working.

By combining the Android app with PCs, servers, and even iOS through compatible clients, Syncthing ends up becoming a kind of distributed "personal cloud," where your files travel encrypted from point to point, without fees, without black boxes, and with a level of control over your data that you'll hardly get with traditional commercial services. Share this information so that more users can learn about the topic.


Google Play Store without Google account
You might be interested in:
How to download apps from the Play Store without having a Google account
Follow us on Google News