Error while connecting relay and discovery servers

Hi, I have a discovery server that seams to be working, when I input that into a client I get no error warnings. When I try add my relay server to my pool I get an error on the discovery server.

78629a0f5f3f164f POST /
78629a0f5f3f164f no certificates

When I try to connect to the public pool everything works.

There’s lots of components involved here.

  • A discovery server
  • A relay server
  • A relay pool server
  • Syncthing itself

Running an entire copy of Syncthing public infrastructure isn’t entirely trivial. In particular I think running your own relay pool server is very unusual (and I don’t really see the use case either). So anyway, I don’t have any great tips, and don’t really recognize the log output.

1 Like

My mistake, I always thought of a discovery server a pool-server. I am hosting a relay server and a discovery server.

Both are from the apt version.

The discovery server looks to work fine (should there be som sort of a landing-page or something else? All I get is a blank page with the words “NOT FOUND”) If I connect with a synching client isn’t showing any errors while using the same url to connect.

However when I tri to connect my relay to my discovery server using the -pool=url-to-server:8443/ I get a HTTP error code 403 (Forbidden) Found the code in apisrv.go on line 229 and onwards.

Looks like perhaps it’s complaining about a missing TLS-certificate - but if this isn’t present the relay-server generates one?

This looks ok.

Yeah, I think I understand what you’re going at, but that’s not how it works.

A syncthing client initially connects to a relay server via one of two methods:

  1. A manually configured relay server set in the clients “Sync Protocol Listen Addresses”.
  2. An automatically selected relay server found by contacting a relay pool server. This is yet another separate app that is neither a discovery server, nor a relay server or a syncthing client. The pool server is not available in apt AFAIK.

After a syncthing client has choosen/connected to a relay server via any of the two methods above, it then notifies the discovery server and tells it what relay(s) it is available on. So the discovery server actually has no influence over what relay the client is using, it just gets that data from the client and hands it over to other syncthing clients wanting to connect.

That client wanting to connect then might choose to connect to that same relay server advertised by the other client (via the discovery server), so that both clients are on the same relay in order to establish a session between them.

Effectively what I want to say is that you can’t connect a relay server and a discovery server.

What you probably want to do is just configure your custom relay manually in your syncthing clients and just use no pool server in the relay.

The other option would involve around hosting a custom pool server, connecting your relay(s) to that and then configure your syncthing clients to use that custom pool server. That is probably a lot of additional work.

1 Like

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