I run stdiscosrv.exe and strelaysrv.exe -pools=“”,
do port forward 8443 for discovery and 22067 for relay,
I can TCP ping got response from the two port.
On client, I paste url to client with public internet IP to Sync Protocol Listen Addresses, and Global Discovery Servers.
After that, all client shows green 1/1 on Listeners, green 1/1 on Discovery.
But the two client never connects to each other, If I force the two client to use address to use relay://IP:port, it will I/O timeout.
If I use “default, relay url” as Sync Protocol Listen Addresses, the two client has connection, may be QUIC LAN, IPv6, syncthing official relay, but just never use my private relay.
If I block incoming connection with firewall, the two client can even UDP hole punching to connect with QUIC LAN, and just ignore relays.
I don’t believe I’ve missed any steps in the above steps, is there any troubleshooting guide to make private relay works?
That sounds like something in your network configuration is broken. However, even if you fix the network issue, that address can’t work, because you also need to specify the relay’s ID like this:
relay://relay.host:22067/?id=<Full-Relay-ID>
If you add this to your sync protocol listen address, syncthing should join the relay and use it if needed. Otherwise, be sure to check the logs for error messages.
I installed everything in new blank virtual machine and find my setup is work.
Then I noticed that I have global proxy settings in environment variables.
By removing them, my private relay works now.
Thank you for your help!
These proxy are setup for speeding up syncthing automatically upgrade so after reboot they can connect as soon as possible instead download in 3KB/s for 40 minutes block at update download instead of join sync network which creates a lot of sync conflict.
But now we have syncthing.exe --no-upgrade as startup argument to skip download update during starup phrase.