Sometimes Syncthing connection is Relay WAN, sometimes it's TCP, and I have no idea why

I’ve been using Syncthing to sync between my PC (Windows 10) and Laptop (Windows 11) for a few months. But throughtout that time, it’s been incredibly slow. Like 50-100kbps for syncing, and always one bar of connection, no matter how close my laptop is to the router (PC is connected via ethernet)

So I did some browsing here to find a solution to speed up the syncing, which usually takes about 20-30 minutes for so for 400ish mb of data. It was under “Relay Wan” for connection type, and I read on some of the forum posts here that port forwarding would help to directly connect. So I found a guide under the FAQ and forwarded the right port.

I tested out the connection once forwarded, and it connected via TCP, and was significantly faster. Like, it synced the 400ish mb in like 30-40 seconds instead of a half hour. It was amazing, and had full bars of connection.

The next day I attempted to sync again with the new fancy speed, and once Syncthing booted up, it was back to WAN connection despite nothing changed in my router, Syncthing, or computer settings, resulting in the painfully slow speed again. I reset my laptop on a whim, and it then connected via TCP once it opened up again with nothing changing.

I’m not sure why, but it seems entirely random when it connects via TCP or WAN, and I don’t have any idea why. Is there some sort of setting within Syncthing that can make it always do TCP? I mean that connection works and the port is open; I know it does because it does connect to TCP, but only like… 30-40% of the time and it seems entirely random, with nothing changing between attempts, or when it works or not

Hopefully I’m describing it well. If I can provide any information to clarify or find a solution, please let me know. Thank you!

It does sound like you’re using both devices on the same network, correct? Then, in theory, one shouldn’t even need to adjust anything in the router (as broadcasting/multicasting within the same subnet/broadcast-domain is usually allowed per default). If the other Syncthing settings are left to default (used ports and what not), Syncthing instances on the same network should be able to find one and another without issues and without having to use a discovery server.

Now, I’m not a Windows user, but I’ve read suggestions of setting some settings to Private Network instead of Public (afaik in Sharing and/or firewall, not sure, I don’t really use windows). This should change some behaviour regarding incoming connections.

Additionally, you can give your devices a static IP (I’d suggest reserving addresses in the DHCP server) and hard-code the address for each remote device (both sides) - as per Firewall Setup — Syncthing documentation. So that it becomes something like tcp://, dynamic.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.