Unable to find device on local network


I have 2 devices running Syncthing on the same local network. Usually I can just click on “Add Remote Device” and the remote device’s ID is already available for me to select and get things working. This time around though, nothing appeared.

Using the QR code worked, but noticed on the confirmation prompt that the IP of the remote device was not the expected local IP (192.168.x.x), but the public address. In settings > connections I disabled everything but “local discovery” on both devices, but still.

How can I fix this situation? Obviously I’d like to use the local network, not the internet. On a side note, is it safe to use this method to send files or do I need to enable encryption somewhere?

For context, I’ve used these two devices before many times but I re-install the OS somewhat regularly on my computer. Currently, my computer is running OpenSUSE Tumbleweed and the other device is an Android tablet.

I suppose you need the versions as well. On my computer:

syncthing v1.23.2 "Fermium Flea" (go1.19.7 linux-amd64) abuild@openSUSE 2023-03-10 00:00:00 UTC [noupgrade]

On Android it only says 1.23.1

Thank you!

Which device didn’t appear via its private IP address?

Syncthing always encrypts communications end-to-end, so it’s a matter of personal preference as to if it’s enough (e.g., some users on this forum prefer to tunnel connections through a VPN).

Depending on which device it was and how the network setup is, it might not necessarily be syncing across the internet (with the exception of the optional global discovery handshakes and telemetry).

Reinstalling isn’t usually a problem, but does require a little more care, plus it also means that your network configuration might not be exactly the same between OS re-installs (which is what I suspect might be the root cause).

It’s very easy to back up Syncthing’s configuration to save time and hassles (on Linux it would be under ~/.config/syncthing).

Thanks, version numbers are always helpful.

If you could also post screenshots of Syncthing’s GUI on the desktop and tablet with the device details visible (feel free to redact some info, but try to leave as much network info visible as possible since that’s the core issue being looked at).

Any additional info about how the network is configured would also be helpful.

Disabling Global Discovery when Android is involved is often problematic, because Local Discovery is inoperative on newer Android versions (Google restrictions; Search the forum for details).


I couldn’t get any of them to appear. The only solution was to use the camera on the tablet to scan the QR code from the computer, which prompted the confirmation on the computer similar to this:

NOTE: This IP address is actually different than the one I originally saw earlier. I tried to shutdown Syncthing and run it again from the terminal to see if there was any output and there was. This IP matches one of the messages:

[OCR7M] 2023/03/24 00:47:33 INFO: Joined relay relay://

The device ID is the tablet though, so I accepted the connection this time around. I haven’t yet been able to share any files but I can update this tomorrow (it’s a little late for me right now), with screenshots from my tablet as well if you need to.

Is this new? I used Syncthing with these devices just last month (I was using different OS back then, so I agree this is probably the real cause). Although I doubt Android is the issue, my tablet is still on Android 9 since I never connect to the internet with it I just use it for reading books.

Thank you both for the help I will check in again tomorrow and update things.

So here’s a screenshot from the tablet with the devices already synchronized. Note at the bottom the IP shown from the device is not the local one as I would’ve liked, but it does work fine.

I guess the only question left is what settings are involved for local discovery? I’m just not sure what to look for. As far as open ports goes I think this looks ok?

sudo ss -ntlpua | grep syncthing

udp   UNCONN    0      0            *     users:(("syncthing",pid=16128,fd=13))      
udp   UNCONN    0      0            *     users:(("syncthing",pid=16128,fd=14))      
udp   UNCONN    0      0                         [::]:21027            [::]:*     users:(("syncthing",pid=16128,fd=19))      
udp   UNCONN    0      0                         [::]:37635            [::]:*     users:(("syncthing",pid=16128,fd=16))      
udp   UNCONN    0      0                            *:22000               *:*     users:(("syncthing",pid=16128,fd=18))      
tcp   LISTEN    0      4096       *     users:(("syncthing",pid=16128,fd=37))      
tcp   ESTAB     0      105       users:(("syncthing",pid=16128,fd=23))      
tcp   LISTEN    0      4096                         *:22000               *:*     users:(("syncthing",pid=16128,fd=12))

As things are right now, you need to run Syncthing as root if you want local discovery to work on Android. The other way is to leave global discovery enabled. Alternatively, you can simply hard-code IP addresses or hostnames.

1 Like

That’s interesting, normally I just run it from the applications menu but I think I can work with that as well, I will try it later.

So, just to reiterate, using global discovery is safe to use in terms of privacy/security right? I just want to be sure because I saw some settings about encryption when I was trying to fix this by myself, and of course I thought this was handled automatically.

Thnak you all!

ALL communication between ALL Syncthing instances is ALWAYS encrypted. There are no settings to disable this. In my opinion, global discovery and relaying is safe.

You might have seen something related to “Untrusted (Encrypted Devices)”. That is encryption “on another level” and with another purpose. It is useful in for example this situation: You have a friend which you trust enough that he will not delete your data, but you want your files which are shared with him to be encrypted.

1 Like

Yes, that’s the setting that I saw. Thank you for clarifying this :slight_smile:

There is an option in the app settings to “run as root”. Of course, the device itself needs to be rooted in the first place :wink:.

1 Like

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