I have successfully implemented Syncthing in my internal network across 4 devices (laptop, desktop, android phone, Synology NAS (DSM 7)) for several months, with the general topology as such: my NAS is the server, and the other 3 devices simply connect to the NAS to push out synchronization.
I recently upgraded my phone to a Pixel 8 (Android 14), have installed syncthing, and now am observing problems with device discovery across my internal LAN.
When clicking “Add Device”, I never see my NAS as a nearby device. I attempted to introduce my android device to the server via QR code scanning, and manual entry of the Android’s device ID to the server (respecting the “devices need to be added on both sides” instructions in the web GUI). After adding the devices, they remain disconnected and Last Seen as never.
Trying a different method, I was able to add my desktop PC (Windows) as a nearby device on my phone. I then shared folders and was able to synchronize successfully. Further, I configured my desktop PC connection as an introducer to push out connections (as I understand it). My android phone added the NAS as a device, but again was disconnected and last seen as never.
After reading several (rather old) posts about Android security and discoverability issues, I attempted to add the NAS server IP address direction:
tcp://192.168.1.100:8384. Strangely, it barked a warning that it expected a different device ID than it received. .
For clarity, my desktop PC, laptop, and NAS server otherwise all connect properly.
Android Pixel 8: Syncthing v1.27.2
Synology NAS: Syncthing v1.27.2
Desktop PC: Syncthing v1.27.2
Any ideas? Thanks in advance!
It’s a known problem that local discovery on Android is flaky / partly broken because of Android OS restrictions. Some of that has been fixed in a recent release, but I think some features still don’t work.
Make sure you have Global Discovery enabled on both devices, as that helps establishing a connection.
Adding the device ID via QR code mutually is already enough, the introducer feature doesn’t add anything there. That just helps to make the devices known to each other, but is otherwise unrelated to actually establishing a connection between the two.
If you want to set a fixed address for a device, it has to specify the Listen Protocol Address, namely port 22000 by default. Port 8384 is the Web GUI, so it’s no surprise the wrong certificate is found there.
Also please check your firewall on the NAS, in case some ports there may be closed for security. See Firewall Setup — Syncthing documentation for details.
I guess the NAS part is using Docker?
@acolomb Thanks for the reply. I succeeded in connecting the two devices (Android mobile and NAS) via fixed address specification on my android. My mistake was utilizing port 8384 vice the correct port 22000, per your guidance. Thank you!
For forum/internet record keeping, the way I resolved the issue:
On my android device, I entered Web GUI mode. From there, I selected my NAS device that was already known but with no connection. I edited the device-> Advanced → Addresses:
tcp://<IP address of device>:22000.
After making this change, both devices were able to maintain a connection properly synchronize.
Also, further record keeping:
- I had global discovery enabled for both devices
- I believe my NAS firewall rules are set correctly, as I had a functional configuration with android, PC, and Apple devices all successfully connecting to the NAS, and making the change above corrected the issue.
In synology NAS’s running DSM 7 (in my case, DSM 7.2.1-69057 Update 3), users can run docker images in their Container Manager. Thats how i run my docker-compose syncthing instance.
The problem is that docker isolates the network of the container by default. Syncthing isn’t able to retrieve the LAN IPs of your NAS that way.
The only workaround is to switch the container to host networking mode.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.