Running Syncthing in a star topology

Hi!

I have three devices which I would like to run Syncthing on. I’ve been thinking that I want to set them up in a sort of a star topology, where two of the peers simply act as “clients” and the third one is the “server”. That is, both clients connect only to the server and have no knowledge of any other peers. The server has an internet facing static IP address.

To configure all of this, I felt it the most suitable to have the clients be the only peers to make outgoing connections, by configuring them with an address to the server such as tcp://<server-ip>:22000. In contrast, I would like the server to make no outgoing connections at all. Is there a way to make a Syncthing instance make no outgoing connections at all and act purely as a “server”? My current assumption on how to do this is to disable Global Discovery, Local Discovery and Enable Relaying under the Connections setting menu on every peer and set the Addresses setting to dynamic for each peer configured on the server side.

As I understand, this would disable all means for the server to make outgoing connections to the other peers, although it feels a bit like a clunky workaround. Is there a better way?

Setting a device’s address to the empty string should prevent outgoing connections I think.

Setting it to the empty string seems to set it to dynamic, at least in the GUI.

Here’s what I tried:

Selected a client connection, switched to the Advanced tab and inserted nothing in the Addresses field. When saving and selecting the connection again, in the Advanced tab the Addresses field was reset to dynamic.

Yeah that’s unfortunate. Maybe there’s no good way, I’m not where I can experiment at the moment. You can remove the listening addresses on the other side I know for sure, in which case there is nothing to connect to.

I see! Thanks for the swift response. Another thing that caught my interest was that, looking at the list of remote devices in the serverside GUI, the Address field points to the server itself. The server has a local IP of 10.0.2.100, and as you can see in the attached image, the address for Client 1 is 10.0.2.100 as well. Is this to be expected? Screenshot from 2022-02-26 20-34-18

That seems unexpected. I haven’t seen anything like that.

You could also try to enter something like invalid.address, example.com or 0.0.0.0 so it doesn’t reset to dynamic. That may lead to invalid DNS requests or other error messages in the log, but for sure will not lead to a connection from server to clients.

I think I’ll stick with dyanmic, I don’t see any way it would make an outgoing connection to the clients anyway given I’ve disabled the settings I mentioned previously.

The weird issue with the 10.0.2.100 address seems to be related to running Syncthing in a rootless Podman container, it seems all arriving traffic as originating from 10.0.2.100.

Probably Podman does port forwarding and the actual connection that reaches Syncthing is from the own host IP.

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