Setup of Discovery Server not working


Syncthing is great, I love it. Now I would like to setup my own Discovery-Server. Since this part of the documentation is not up2date anymore I try to figure how it works by myself, but the clients cannot find the server to exchange the IDs. Please have a look at this picture for details.

http: //

(I don´t know why the editor does not allow to add this link in a normal way like the other one, sorry.)

I disabled the Local Discovery for testing. I can ping to all machines and port forwarding is also done. At least with your Global Discovery Server it works fine, but not with mine. What am I doing wrong? Is the server-setup maybe wrong?

Thanks for your support.


If you are using the latest (.12) release of discosrv, it will not work with the current released 0.11.x version of Syncthing, only with the development version. You need the standalone version (previous release) of discosrv for the currently released Syncthing.

I got bit by this the other day. Don’t forget that the previous discosrv version defaults to port 22026, while 0.12 works on 22027.


OK, thank you that makes sense. Didn´t see that there is another Version. How do I know which discosrv-Version I have in general. There is no discosrv -v / --version or similar?

They’re not version tagged, no. You want this one for v0.9-v0.11 and this one for v0.12+.

Yes, thanks!

The Discovery Server seems to run properly, each client can see the server but the clients cannot see each other for syncing and are showing “Diconnected”. I don´t see the mistake.


And there is one more thing. I do not really understand what the “Sync Protocol Listen Addresses” is for. Do I have to change this too?

Thanks for your help.


Is the Server in the same network as the client? Is the phone outside this network?

If both is true, it won’t work.

Everything is in the / 24 network for testing. If this works, later I would like to setup the server with dyndns so that syncing via internet works too.

When everything is in the same network you probably don’t want global discovery, you want the local discovery to work. I’d recommend double checking that your local firewalls aren’t blocking the relevant udp packets.

Local Sync is no problem, everything is fine here.

But I want global discovery later for syncing via Internet with my own server. I set up this locally only for testing. Thats the reason why I unchecked the Local Discovery checkbox and removed ipv6 announceserver.

It is some kind of global setup in a LAN to figure out if the global thing works in general. Normally now the Clients should sync but they don´t.


windows firewalls are both off.

Ah ok, so I have to create an new virtual network environment and setup the server there. Will try this.

That’s not really what I meant. The discovery server uses (as far as I recall) the IP which is used to connect to it. The nodes at home will report their local IP, not the IP of your internet connection.

For your test it should not matter, as every node is in the same network and the discovery server should work and the nodes should be able to connect. But later in the real usage, you could have that problem.

In the end I would like to have something like that:

And when this is working properly and relativly stable over a few weeks, I probably suggest Syncthing for use in our company.

Scratch my preious post :wink:

I just tested it myself. When I set the global discovery server to my DynDNS name, my router connects as if it comes from the external IP but routes it internally.

I started the discovery server in debug, to get the info:

./discosrv -debug=true
2015/09/09 18:16:14 New limiter for <my-external-ip>
2015/09/09 18:16:14 <- <my-external-ip>:<random-port> discover.Announce{Magic:0x9d79bc39, This:discover.Device{ID:[]uint8{<my-id-in-hex>}, Addresses:[]discover.Address{discover.Address{IP:[]uint8(nil), Port:<my-port-in-hex>}}}, Extra:[]discover.Device{}}
2015/09/09 18:16:15 <- <my-external-ip>:<random-port2> discover.Query{Magic:0x2ca856f5, DeviceID:[]uint8{<my-id-in-hex>}}
2015/09/09 18:16:15 -> <my-external-ip>:<random-port2> discover.Query{Magic:0x2ca856f5, DeviceID:[]uint8{<my-id-in-hex>}}

I did not test this, but it seems that that should work for external nodes.

So it depends on your router and how the connection is established.

so… does discovery server work if clients are behind a class C LAN via a router connecting within a class A network? while the discovery server is simply config at the class A network

There are no classful networks any more. :wink: That said, yes, it works for a routed environment. Internet is a routed environment.

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