I’m having trouble locally connecting my phone to my PC with Syncthing
Phone is on Android 11 (LineageOS), I’m aware that there is an aspect of the API that breaks interface address discovery
I have applied this alternative workaround to remove the local discovery aspect which conflicts with the API, on top of trying quic:// and tcp4:// as prefix when changing the pc’s address on my phone, however in the WebGUI I am met with either:
What about the router? Can you check whether there is network isolation or similar option enabled there (as that would prevent the devices from seeing each other)?
Can you try to revert all network-related settings in Syncthing to the defaults and see what happens? By the defaults I mean this in the general settings:
After doing so, please post screenshots of the Syncthing WebGUI on both sides. On Android, you can access it from the left slide-out menu (or remotely on a larger screen if you know what you’re doing). I’m also assuming that Syncthing is still running as root on the Android side.
When it comes to the Web GUI, I’d basically like to see this part:
I checked and there doesn’t seem to be anything like this enabled preventing devices from talking to one another.
UPnP is enabled on the router.
The Synthing documentation recommends enabling UPnP in it, but I’m not seeing it either in Settings or Advanced Settings.
Reset Syncthing on the phone and PC, managed to connect both to each other through VPN with global discovery & relays (have been using it like this in the past, I want to use it exclusively locally now), so Syncthing itself works.
Progress: Syncthing on the phone now detects the PC in discovered devices when adding a new device! However I still can’t establish a connection between them.
On the phone under remote devices:
PC > Address:
dynamic
tcp://[address1*]:22000
connection refused
tcp://[ReservedDHCPAddress]:22000
connection refused
quic://[address1]:22000
operation not permitted
tcp://[ReservedDHCPAddress]:22000
operation not permitted
*address1 is a random address
Something somewhere is stopping them from connecting. Reminder that I was just able to connect them both being connected to a VPN through relays and global discovery
This is with all settings on default for both the phone and PC (except Global Discovery and Relays disabled). I’m following the steps of the alternate workaround where I reserve a DHCP address for one device (PC) then add it to the phone.
The discovery failures are to be expected as I do not have IPv6 enabled.
The setting the docs refer to is called “Enable NAT traversal” in Connection Settings. It’s enabled by default though.
UPnP isn’t relevant if you’re not talking through the NAT though, e.g. if your devices are on the same network.
That means there’s either a firewall issue on the PC, or the PC isn’t listening on the correct interface or port. What listen address are you using on the PC?
Looks like a crashed, stuck instance here. I would suggest to reboot the Android and see if that removes the errors. It’s probably not the root cause though.
It’s also possible that you’re trying to run syncthing-android and syncthing-fork at the same time: Don’t do that: They will conflict with each other. Choose one.
The workaround isn’t necessary if you run Syncthing on Android as root (which you said you did). Unless you would prefer not to run it with such privileged access and are trying to find a solution to avoid it, of course.
This is more or less what the situation in the GUI in relation to listeners and discovery with all settings at default should look on Android when running as root.
It’s actually possible to run both, but you do need to change the GUI port in the app settings, and then tweak the ports in all other connection-related settings inside Syncthing itself. Of course, for troubleshooting purposes it would be much better to keep just one Syncthing app running right now.
You’re right, I had both Syncthing and Syncthing-Fork running at the same time. Disabling Syncthing restored listeners to 2/2 green. (quic:// & tcp:// 0.0.0.0:22000)
I’m running it as root at the moment to see if the android API restriction is the source of the issue, which it doesn’t seem to be
Yes this is almost what I have, the difference between your screenshots and what I have on my phone is in discovery failures I have:
IPv4 local: write upd4 0.0.0.0:[randomport]>[destinationaddress*:21027]: sendto: operation not permitted
*Analysing traffic with NetworkTrafficView, I see that it’s the destination address shown here and not the source address which is the reserved DHCP address I gave the PC when following the workaround instructions which is slighlty different at the end
I have tried completely disabling Windows fireall and Simplewall both at the same time and the phone still can’t connect to the PC, nothing changes.
Checked the router and there doesn’t seem to be any features/settings that prevent devices from communication
Are there any other settings like:
That I should know of for Syncthing to work? or any Windows services/components that should be enabled?
Reminder that I have no issues connecting the devices through a VPN using relays & global discovery
I have a very hardened and minimal Windows, so it’s possible I have disabled features, services & applied registry tweaks that would indirectly hinder Syncthing from working properly locally
Honestly, if it’s a heavily tweaked custom Windows setup, it’s difficult to say anything conclusive without testing the same on a clean Windows installation. I’m mainly a Windows user and up to now have installed Syncthing on dozens of Windows machines. Normally, setting the network to private should be the only thing needed to make everything connect locally without issues.
Mostly applied a lot of scripts/tweaks from this project related to privacy, ran O&O Shut up too.
Again, nothing changes when completely disabling the firewall & simplewall at the same time. I don’t know what else could be preventing the phone from connecting to the PC