I am digging deeper and deeper into the syncthing and the docs. Still looking for answers.
Below what I discovered up to now.
Not ‘comfortable’ / ‘not a good idea’ the names used in the GUI do NOT match the names used in the config file and/or documentation.
Here a limited version of the ‘translation table’
GUI-naming vs Config/Advanced naming
- GUI “Sync Protocol Listen Addresses” = Advanced “Listen Addresses”
- GUI “Enable NAT traversal” = Advanced “NAT Enabled”
- GUI “Global Discovery” = Advanced “Global Announce Enabled”
- GUI “Local Discovery” = Advanced “Local Announce Enabled” ([ff12::8384]:21027 ; IPV6 FF02::/16 is the prefix for a link-local multicast)
- GUI “Global Discovery Servers” = Advanced “Global Announce Servers”
- GUI “Enable Relaying” = Advanced “Relays Enabled”
After knowing this mapping I did find some info in Configuration Tuning — Syncthing documentation
But I do not yet know the answers on all questions I have. Never the less some info below as related to the connection GUI and the 'Tuning for LAN-only
’ section of the indicated html page
Sync Protocol Listen Addresses
Very, very strange the “Sync Protocol Listen Addresses” seems to contain settings related to both
- outgoing traffic (e.g. a relay string) as (listen is not appropriate here)
- in coming traffic ‘listening addresses’ (listen is correct here!)
For restricting sync traffic to only LAN
relaysEnabled
Set to false to disable relaying sync traffic through servers other than your sync partners.
- Note that my private relay is the main/only connection point between my private clients!
- an explicit defined (private) relay-server is not part of your sync partners (I did test).
- so you have to turn on “Enable Relaying” to reach you (private)relay
When relays are used, those that you connect to can see your device ID and public IP address, but not the synchronized data, as that is encrypted.
natEnabled
Set to false to disable opening up UPnP and NAT-PMP port mappings and pinholes, and to disable hole punching. This reduces the ability for sync partners to connect on the Internet.
- I personally forbid that here and in my firewall => advice turn it off
- For restricting other things to only LAN
local Announce Enabled
no description available, however I assume using multicast on the local lan to find other think thing devices
Issue: not clear how that is related to a defined “Listen Addresses” e.g. a relay server!
- does the relayserver string overrule the default listening address ? or is it additional?
- are relays always tcp-only? (there is no tcp and / or other protocol id)
- does the relay string block the default relays?
globalAnnounceEnabled
Set to false to disable use of Global Discovery servers, which know your device ID and public IP address when being used. The discovery servers are used by your sync partners to discover your IP address from your device ID.
Questions:
- What / which are the “Global Discovery servers” ?
- does your private relay function as a discovery server ? (will it connect to your mobile clients on the internet ??)
On Android, local discovery is known to usually not work, so either global discovery or hard coding IP addresses is often required.
- can android devices communicate with private relays !!??
I assume that you need this functionality to reach clients, even your own clients if they do not have a fixed address (e.g. on the internet)
do not use non-LAN IP addresses in the config
If it’s not obvious, do not hard code non-LAN IP addresses, if you want to keep LAN-only
Also interesting how to combine access to private clients (via my private relay) with access to other clients (in a secure way).
So far my actual findings