Using Syncthing ONLY locally without UPnP and Fritzbox Router..?

Hi,

I bet there are a lot of German users in this forum where the Fritzbox is very popular, right? Or is the Fritzbox popular somewhere else?

Maybe somebody can tell me how to do the following:

  1. I just want to use Syncthing in my local network. Never outside!
  2. I don’t want to turn on UPnP.

Disclaimer: It works great with UPnP turned on in the Fritzbox but I cannot turn it on “globally” for security reasons. If it were only me connected to the Fritzbox it would be no problem turning UPnP on.

It actually works without turning on UPnP. But it gives this annoying Notice: “Failed to create UPnP port mapping”. Should I worry about this? I also tried to set up the port forwards manually (identical to the automatic port forwards set up by UPnP) and then entering the IP:port into SyncThing settings. But this did not work.

What are the best settings for somebody who wants to use SyncThing only locally without UPnP turned on?

So if you don’t want UPnP, don’t use it. There is a checkbox in the options not to use it. If you set up port forwarding manually, it should work just as well, but you might need to map the same external port as the internal port (separate ports on separate devices I guess).

If you want to use it only within LAN, disable global discovery, and local discovery should do the job. You can even set up specific lan addresses if you wish.

“Doesn’t work” can only be fixed when there are some logs to look at :wink: Perhaps try running with STTRACE=discovery to see if the devices are finding each other.

I already knew about the UPnP checkbox as well as the global discovery and how to turn it off.

I was looking for a step-by-step guide for Fritzbox owners. Especially how to set up the port forwarding manually (and correctly).

I’m a bit confused. You want syncthing only in your homenetwork but on the other hand you want to forward the port manual in the FB?

No.

I just want the best sync data rate possible just inside my home network. If this works without using UPnP or manual port forwards: even better!

What are the best settings for the Fritzbox to achieve this?

I currently deactivated UPnP and Global Discovery. For “Addresses” I use “dynamic” again instead of IP:port I used earlier. Somehow it isn’t really clear to me what the best settings are for what I want to achieve (both for my Fritzbox router and SyncThing). Basically I tried all combinations of settings I could think of and tested it. What made things worse is, that there is a bug with a Windows 8.1 tablet I use, where the connection gets problems when the screen goes dark (standby). After lots of research I found out that a workaround is to switch from the 2.4GHZ to 5GHZ wifi network (I know it sounds crazy but it works).

Anyway. Doing those experiments was hard enough but got crazy because of this stupid bug. I always thought it is due to my settings when I had connection problems.

So, yes, I still hope other Fritzbox users would share their settings (Fritzbox and SyncThing) when using only local sync without UPnP.

You don’t have todo anything in your FB if you want only share in you home network.

As a first step i would deactivate the Global announce and UPNP in the config.

<globalAnnounceEnabled>true</globalAnnounceEnabled>
<upnpEnabled>true</upnpEnabled>

(both to false)

that should be enough for only operate local.

optional you can go the next step if you add for each client a host and a port. each device has a hostname and you can use this name in your config

As Example my Laptop has only one address entry in the config

<address>LAPTOP:22000</address>

You can set all options in your browser :wink:

Thank you for the answer.

It’s good to hear that I almost ended up with the same settings after my tests :smile:

I don’t use the config files directly (yet). I do everything in the browser at the moment. Are we talking about the following node settings:

Addresses Enter comma separated “ip:port” addresses or “dynamic” to perform automatic discovery of the address.

So you say, I should remove ‘dynamic’ and enter either IP:port or hostname:port for each node, right?

How does this improve speed? Does it just speed up the initial connection between nodes?

Should I set port 22000 for every node?

Right! In your case you can enter the LAN IP of each PC with SyncThing installed.

Yes, it speeds up the node connection a little bit. The client can connect directly to the given IP and don’t have to ‘search’ in your LAN over mulicast (UDP).

Yes, if your clients have the standard port settings (TCP 22000).

i would prefer the hostname in chase thats the local ip is changing.

i use the default port. i changed only the default port for the webui because many application use 8080 for a webfrontend :frowning:

Sadly the documentation doesn’t state what the best “Addresses config” is in case you do only local sync (global discovery and UPnP turned of). It would be nice to undestand how nodes contact each other at startup and what the ‘best’ setting is:

  1. dynamic
  2. 192.168.172.22:22000
  3. LAPTOP:22000

I still have ‘dynamic’ at the moment but I am afraid that the connection between nodes could be more stable or the data rate higher with other settings.

You are looking for problems where they don’t exist. Dynamic will use local discovery which will introduce a delay in establishing a connection, laptop:x vs ip:x has no difference as long as other device know hows to resolve the laptop hostname. And none of this affects the transfer speeds.

I’d stick which static ip’s if your router supports that and you know how to set it up, alternatively, use local discovery.

1 Like

Thanks!

I wonder if I should always use Port 22000? Currently my address settings look like this (I have static IPs in my router):

192.168.178.21:22000 192.168.178.24:22000 192.168.178.25:22000 192.168.178.33:22000 192.168.178.35:22000 …

I wonder if it makes sense to use the same port for all nodes? When I look in the console it prints that all but one node will actually use other ports then 22000. They are assigned other ports.

Why do I have to specify a port at all if it is anyway negotiated at startup and set dynamically? At least that’s how it looks to me. Maybe it would help if I knew how Syncthing works when it comes to startup, initial connection, etc.

The code is there. Go read it if you want to learn more.

There is no negotiations happening. Outbound connections always get a random port assigned by the OS, as they are not listening (inbound) connections and nobody is supposed to connect to them.

So its just a question who will establish the connection first.