I launched a private relay server(inside a container) and configured two Syncthing instance to use it via static relay address. Syncthing instance could connect to(i.e. register) with the relay server (see point 1 below) but for transferring data the devices remained in disconnected state with the connection issue shown in point 2.
listener.go:117: Message protocol.JoinRelayRequest from DWG7AF6-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
listener.go:117: Message protocol.Pong from DWG7AF6-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
I believe it should have tried to connect to 10.231.128.24:10126 as specified in the url in log(relay://tcp.ey.devfactory.com:10126), but it is trying to connect to 10.231.128.24:22067
I am using syncthing version 0.14.38 and syncthing relay version is also 0.14.38.
I checked if there is any configuration issue on my end but could not figure it out yet.
Port 22067 isn’t hard coded anywhere in Syncthing itself, so it should not be making it up. Note though that device A will be connecting to the relay address announced by device B, which is the relay address that B is connected to. This may be different from the relay address A is connected to.
So - how is DWG7AF6 connected to the relay? Port 22067 or port 10126?
Ok, like I said i am launching the relay server inside a container and this container is launched on a deployment platform(like heroku) and the same platform is making the exposed port accessible via “tcp.ey.devfactory.com:10126” and so on. I have requested them for more information on how they are doing port mapping if it might help.
But seems relay server is not supposed to be used via a container behind some port mapper, and launching the relay service on a dedicated instance would definitely work.