I’m running Syncthing on some machines that are all connected to ZeroTier, which is doing its own UPnP and Relaying etc.
Does this mean I should disable the following options in Syncthing on each machine:
- NAT Traversal
- Global Discovery
- Enable Relaying
Since ZeroTier is already handling all of that?
Also since ZeroTier doesn’t have broadcasting (I think?), I have to use explicit IP addresses, but I’m unsure if I should pick tcp or quic, which one does Syncthing chose when the address is dynamic?
If it works, I don’t think anything needs changing?
My concern is bandwidth between the peers. I don’t really know if it benefits Syncthing to be relaying, or do NAT traverses when another application is already doing it.
Though my understanding on the subject is minuscule and I haven’t gotten a chance to test speed difference yet.
By default ZeroTier does support broadcast as well as multicast. There’s a recipient limit however, I think by default it’s at most 32 nodes per multicast (broadcast) packet. This is all configurable in the ZT network controller.
This also means that local discovery should work, so no manual address configuring required.
If you want all traffic to run via ZeroTier, yes, because otherwise syncthing might find and establish an (external) connection via a non-ZeroTier interface.
Syncthing picks “whatever works”. However TCP is generally preferred.
Relays never benefit performance, they hurt (a lot). Both ZeroTier as well as syncthing try to avoid relays if possible. For syncthing it doesn’t matter how the connection was established, it’s just the connection that matters.
ZeroTier does have some overhead and will most likely decrease a performance a bit (compared to a direct TCP connection over native IP). The exact “how much” cannot be easily quantified and highly varies between different networks and software/hardware stacks.
Awesome, thanks for breaking this down for me!
If I use Zerotier, I’m on a mobile network or, at least, a network that I shouldn’t use Syncthing on.
Just to confirm, because we’re identifying devices by IP, we don’t need to do anything to make sure syncthing doesn’t run over zerotier, since zerotier has it’s own IP addresses. Correct?
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.