My phone and my Mac are connected to my wifi router which connects to the Internet in a metered service. Recently my high data usage seems to be related to SyncThing usage between the devices. Is it correct? Does SyncThing really transmit data over through WAN and back to my other local device?
If it can establish a direct link, no, it doesnât.
That means you should check if it can establish that direct link - what address does the web interface give?
Also, is it the case that these two are always behind the same router? Syncthing goes to some lengths to be able to keep connecting even if the devices hop IP addresses.
To help give Syncthing hints as to where it can find devices, you can add host names and IP addresses into the Device entry. Syncthing will then try these, as well as using discovery.
In the Device pane, click Edit, Advanced tab, then in the Addresses field you can edit it to something along the lines of tcp://computername, tcp://192.168.0.1, dynamic
. Click Save to finish.
If you wish to go for a harder resolution, you can tell Syncthing to only connect through specific networks. This will mean a device can never be accessed from elsewhere, e.g. anywhere outside of the LAN. Depending on how you use your devices this might not be suitable. From Actions at the top-right, click Advanced. Scroll to the Device entry and expand it. In the âAllowed Networksâ field you can add permitted network addresses here, e.g. 192.168.0.0/24, fe80::/8
, click Save at the bottom.
You could remove âdynamicâ from Device->Addresses, and use IPs/host names only, but this may give a less reliable experience as IP addresses can change, and local hostname resolution may not be dependable. For this reason using the Allowed Networks feature should prove more useful.
Both of my devices have local addresses dhcpâed from the router (phone: 192.168.8.100, Mac: 192.168.8.101). Both devices are set as âdynamicâ. Does it make them connect directly? How can I verify?
I did try turning off âSync on metered networkâ on the phone, and it makes sync not happening at all. Does that indicate syncing relies on the WAN?
Setting a fixed address seems not a good option for me as I often change locations (and to different routers).
If Syncthing is showing the device has having a local address, then it wonât be transmitting via the WAN. With âdynamicâ it will sometimes pick up the WAN address first. However, it will switch to a local address once that is found via Local Discovery.
I am not sure if âsync on metered networkâ being disabled will also disable local connections.
You shouldnât be seeing âdynamicâ as an address except in the configuration dialog. If the web interface is showing you the RFC1918 addresses, thatâs whatâs being used - that is your verification.
I donât know how the âmetered networkâ thing works, but the easiest way to implement something like that is to just tag the interface, so if the wi-fi is labelled as metered, no traffic will go through there at all. Any other option would require explicit configuration. If thatâs how it works, itâs not a useful indicator, unfortunately.
Hereâs the thing, though - if you often change locations and routers, isnât it possible that the phone and the computer arenât always on the same network? Theyâd still try to connect, and at that point they would definitely go through a WAN connection of some description.
You can set DHCP reservations so that your 2 devices always get the same IP when at home. Also, depending on the OS, wifi connections have their own âper SSIDâ IP settings.
Also, you say a phone is involved : are you sure when the phone is at home that it always has access to the wifi network? If in some rooms the phone looses wifi, it will use the cellular network.
Hey, really thanks for this one⌠This saved me so much of hassle. I mean this technically should be like a default option (not necessary, but optional) in the settings where you can specify the local address of the device, making it more intuitive as to how you can use the internal network without raising the Internet bill, especially for the initial sync.
And the bigger issue that I was facing was that my Android device was consistently getting Disconnected which I guess will still be an issue when I have my phone outside my local network because it relies on a relay network. But yet at least not having to worry when I am on my home network is a blessing.
Once again, THANKS!
One thing that helped to get the connection type
as TCP LAN
is to set the only local network setting. Useful if you are only using Syncthing locally.
https://docs.syncthing.net/v1.29.0/users/config#config-option-options.alwayslocalnets
Now every connection is TCP LAN for me.