Connection established alway via relay server not directly.

I Have a 3 devices with syncthing.

These devices network configuration are…

  1. Device A
  • [eth1]
    • IP: 192.168.0.10
    • SUB: 255.255.255.0
    • GW: 192.168.0.1
  • [eth2]
    • IP: 23.50.60.134
    • SUB: 255.255.255.0
    • GW: 23.50.60.254
  1. Device B
  • [eth1]
    • IP: 23.50.60.65
    • SUB: 255.255.255.0
    • GW: 23.50.60.254
  1. Device C
  • [eth1]
    • IP: 192.168.0.44
    • SUB: 255.255.255.0
    • GW: 192.168.0.1

and Connection status is

  • A <-> B
  • A <-> C

A has a two sync connection.

In this status, A and B connected via relay server always. A and C connected via directly.

I had setup firewall about port 22000/TCP in/out, 22000/UDP in/out, 21027/UDP in/out for all devices.

Is there any way to connect directly?

Did you set those up on the devices themselves, or also on the router? The router forwards can be done for every device, but generally are only needed on one side. So e.g. you could do it just for device A.

To see what addresses are discovered and what the errors are, disable relaying. Then take a screenshots from the web UI with the relevant remote device expanded. That will then contain a list of discovered addresses and errors encountered while trying to connect.

Just in case there’s Windows involved, please make sure that your network connection in the Windows settings is set to “private” and not “public”, as otherwise the OS won’t allow direct connections.