How to Build a Reliable File Sync System with Syncthing on Windows and Linux (No Cloud Required)

Why Syncthing is a Smart Alternative to Cloud Sync

If you want Dropbox-style file synchronization without handing your data to a third-party cloud, Syncthing is one of the most practical tools available today. It is open-source, uses strong encryption, and syncs files directly between your devices. That makes it ideal for IT pros, homelab users, and small teams that need fast and private file replication across Windows and Linux systems.

This tutorial walks you through a modern, stable setup: installing Syncthing on Windows and Linux, pairing devices securely, setting up reliable folder sync, and applying best-practice tweaks for performance and safety. You will end up with a “set it and forget it” file synchronization system that works on your LAN and also remotely.

What You Need Before You Start

Before configuring anything, prepare the basics. You need at least two devices (for example, a Windows 11 workstation and an Ubuntu server), a stable network connection, and permission to install software. If your devices will sync over the internet (not just on the same LAN), you should also have access to your router/firewall settings for optional port forwarding.

Syncthing does not require a central server. Each device runs the same software and participates equally. The only thing you must protect carefully is the device pairing process, because that determines which machines are trusted to access your data.

Step 1: Install Syncthing on Windows

On Windows, the cleanest approach is to use the official Syncthing for Windows package. Download it from the official site and extract it into a dedicated folder such as C:\Syncthing. Launch syncthing.exe once to initialize the configuration and open the web interface.

To make Syncthing reliable, configure it to run automatically. A common method is to install it as a background startup task using Windows Task Scheduler. Create a task that runs at user logon (or at system startup if appropriate), points to syncthing.exe, and uses the “Run whether user is logged on or not” option for always-on syncing.

Step 2: Install Syncthing on Linux (Systemd Service)

On modern Linux distributions, installing Syncthing from your package manager is straightforward. After installation, enable it as a user service so it restarts automatically after reboots. This gives you a robust “daemon-like” setup without needing a desktop session.

Once enabled, the Syncthing web UI typically binds to 127.0.0.1:8384 by default. If you are managing a headless server, use SSH port forwarding to access it securely from your workstation rather than exposing the UI publicly.

Step 3: Secure the Web Interface (Do This Early)

Open the Syncthing web interface and go to settings. Set a strong GUI username and password. Even if you only plan to use it on your LAN, credentials prevent accidental access and reduce risk if a port is ever opened incorrectly.

If you must access the GUI from another machine, avoid binding it to all interfaces unless you have a clear firewall rule and a trusted network. In many environments, SSH tunneling is the safest and simplest choice.

Step 4: Pair Your Devices (Trusted Device Setup)

Each Syncthing node has a unique Device ID. To connect two systems, add one device to the other using this ID. In the web UI, choose “Add Remote Device,” paste the Device ID, and give it a recognizable name like Win-Workstation or Ubuntu-NAS.

When the second device receives the pairing request, accept it. At this point, the devices can communicate securely. Syncthing uses encrypted transport and validates identities using those Device IDs, which is why you should only exchange IDs over a trusted channel (not in public chat logs).

Step 5: Create and Share a Sync Folder

Now create a folder on the first device. Click “Add Folder,” set a clear folder label (for example, Projects), and select a folder path such as D:\Projects on Windows or /srv/sync/projects on Linux.

When adding the folder, choose which remote device(s) should receive it. On the receiving device, Syncthing will prompt you to accept the shared folder and choose a local path. Be careful here: selecting the wrong directory can cause files to sync into an unexpected location and create confusion later.

Step 6: Choose the Right Folder Type (Send/Receive vs One-Way)

Syncthing offers multiple folder types. For most two-way collaboration, use Send & Receive. If you want a one-way replica (for example, a workstation pushing data to a Linux backup box), configure the source as Send Only and the target as Receive Only. This prevents accidental deletions or edits on the backup side from syncing back and damaging your primary copy.

For important data, one-way replication is often safer. It behaves like a continuous mirroring job, but still gives you Syncthing’s speed, versioning options, and cross-platform support.

Step 7: Improve Reliability with Versioning and Ignore Rules

If you want protection against accidental deletion or ransomware-like mass changes, enable File Versioning in the folder settings. A common choice is “Staggered File Versioning,” which keeps older versions for longer periods. This is not a full backup solution, but it can save you when a file is overwritten or removed by mistake.

Also consider ignore patterns. You can exclude temporary files, caches, and build outputs that don’t belong in a sync workflow. Ignoring unnecessary files reduces CPU load, database size, and sync churn.

Step 8: Network and Firewall Tips (LAN and Remote Sync)

On a typical LAN, Syncthing works with no firewall changes because it can discover peers automatically. For remote syncing, it can still work using Syncthing’s relay system, but performance is usually better with direct connections.

If you control both ends and want consistent direct connectivity, you can forward Syncthing’s default listening port 22000/TCP to the internal device. Keep security in mind: only forward what you must, and ensure the GUI port is not exposed. In business environments, a VPN is often the cleaner solution for remote syncing.

Quick Troubleshooting Checklist

If syncing is not happening, start with simple checks. Confirm both devices show “Connected” in the web UI, verify you accepted the folder share on the target device, and make sure the folder paths actually exist and have correct permissions. On Linux, permission issues are a frequent cause of “out of sync” behavior.

If devices are “Disconnected,” check local firewalls, confirm both systems have correct time settings, and try disabling and re-enabling the connection. You can also review Syncthing logs in the web UI to identify port conflicts, rejected connections, or permission errors.

Final Notes: Sync is Not a Backup

Syncthing is excellent for real-time file replication, but it is not a complete backup strategy by itself. If you need disaster recovery, pair this setup with periodic offline backups or immutable snapshots. A strong combo is Syncthing for fast syncing plus a separate backup tool for long-term retention.

With the steps above, you now have a secure, cloud-free synchronization system that runs on Windows and Linux, survives reboots, and can be tuned for two-way collaboration or one-way protected replication.

3.

Comments