It took me a while to figure out why many of my self-hosted services were intermittently failing to connect on my phone after updating to Android 17. I eventually figured out there’s a new ACCESS_LOCAL_NETWORK permission which means the “Nearby devices” permission is now required to access devices on the same network subnet. For an avid self-hoster, this can be quite a bit.
I had my DNS configured so my public-facing server resolved to a local IP address when on my LAN. This meant that my web, immich, xmpp, NTP, jellyfin and DoH servers all resolved to a local IP address on wifi. On Android 17, it all broke without warning. No error messages. No asking for extra permissions. Just silent packet dropping.
I’ve solved it by configuring my public-facing services to resolve to my external (static) IP address, even when inside the network. I couldn’t make any internal services resolve to the external address (SMB, CUPS etc) because they are (obviously) not bound to my WAN interface.
I get why the change was made. A lot of apps were snooping around people’s networks to gather intel. A potentially massive privacy violation.
Has anyone else had this issue? Is this the cleanest solution?
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters DHCP Dynamic Host Configuration Protocol, automates assignment of IPs when connecting to a network DNS Domain Name Service/System ISP Internet Service Provider
3 acronyms in this thread; the most compressed thread commented on today has 13 acronyms.
[Thread #115 for this comm, first seen 27th Sep 2026, 20:10] [FAQ] [Full list] [Contact] [Source code]
Haven’t noticed it yet because my services are on a different network than my clients
confused me when I suddenly had to give Firefox this permission to access websites on my LAN
More ways to control what can access what is a welcome change for me
(I’m on GrapheneOS but yeah, Android 17 based now)
Luckily grapheneos allows a hybrid approach so allows just the lan subnet permission without the wider nearby devices permission.
Hey can you let me know where I can find more info on this? I am running GrapheneOS as I was having this exact same issue as OP a few day back.
On my browsers I have network access, but nearby devices was disabled.
I checked my private dns settings and granted nearby devices access to my browsers, which allowed me to hit my local self-hosted services.
Just wondering if there is a better way to achieve the same.
I had my DNS configured so my public-facing server resolved to a local IP address when on my LAN. This meant that my web, immich, xmpp, NTP, jellyfin and DoH servers all resolved to a local IP address on wifi.
I unfortunately don’t have an answer to your question since I’m not on Android 17, but I do want to ask about this part. What’s the benefit of this? Does it improve speed when streaming on Jellyfin?
Not OP but I do the same for two reasons.
A) it eleimitaes my ISP traffic. It doesn’t have to go out to my router, to come back in on the public IP. They can’t track what never hits them.
B) I also have completely internal services. So the DNS entries are internal only. Can’t map my internal network publicly.
Would you have any recommendations to resources where I can read about setting something like this up? I’ve recently picked up a managed switch and set up a computer to act as a router, and I’ve been learning how VLANs be. I don’t have things fully working on my home network yet, though, but I’m very interested!
If you host your own internal dns server like a pihole, you can just add them in as local names.
Careful of something called split brain dns though.
For reference, I use AWS Route53 to host my dns domain publicly and internally I use pihole and Traefik. Traefik deals with getting certificates for my internal resources.
I don’t know how the others set theirs up, but I use “views” in bind 9 https://kb.isc.org/docs/aa-00851
Essentially, the DNS I run on a router-like box much like you describe uses a different database depending on whether you query from an internal IP address or a public address. For me, the advantages are that I can let devices on my local network declare their own names to DHCP and enter them in DNS without worrying about the outside world. Mu internal network doesn’t crash if my ISP changes my address, Certbot happily requests certs for any site with a public address, and that cert works seamlessly on the corresponding internal address, no wildcards or DNS challenge required.
I’ll admit I dont have one.
I’ve been meaning to write one myself on how I use things. As how I’ve gotten it to work has really been from a decade of doing this professionally. And I have opnions.
I’ll for sure post links to this community when I have them.
Do your apps complain about SSL certs?
Traefik serves DNS challenge certificates
this is how they know who is even looking at stuff on their own network. holy shit
Haven’t been brought to 17 yet thankfully.
My long term solution is to not use android. My short term solution will likely be to use android even less, and be even more pissed at Google.
How is this added permission not a good thing? Surely adding a local network only permission is a positive, you can allow apps internet permission and decline them access to your local services.
The permission structure sucks.
Its a silent drop (no errors are returned), webview breaks connected to WiFi even without a local resource being requested, it lives inside nearby_devices so giving permission there includes this (and gives a broader spectrum of access such as Bluetooth and WiFi).
Its just shuffling the problem around.
Also, fuck Google.
Solution is to just enable the permission on apps that need it.
The solution is to avoid google going forward, for many reasons.
That’s why I use graphene but the permission is still there in base android.
The problem with graphene, unfortunately.
It doesn’t actually get away from google, at best its plugging holes in a (to me) sinking ship.
I wish there were some viable “fully cooked” alternatives. I won’t touch apple products with a 10 foot poll, and I owned the first and second iPhone.
As for Linux phone i have tinkered with it but its nowhere close to being a daily driver, yet.
Strangely sometimes I wish the Microsoft phone was not a total flop…
I guess the only thing left if a completely dumb phone, but that does not help if you use your phone more as a “pocket computer” then a phone at all.
Completely agree
My current decision is between a new Motorola signature 27 with graphene (running under the assumption Linux will be able to make the jump there, which isn’t an unreasonable conclusion to jump to), or getting a mostly basic flip phone that can hotspot and using a umpc with it.
Where Linux phones have failed for me is the limited options for phones and on the actual phone part, so I feel like separation that out with a nice umpc and letting a phone be a phone is a worthwhile option.
We’ll see how things play out though!
Linux phone?
Flip phone
Telephone

Why not just grant the permission to the apps?
Relatedly, I think this is why Google Home and casting to Chromecast have stopped working reliably on my phone. Anyone figure those out? I’ve already tried granting permissions. Or it may be something GrapheneOS is doing.
I’m in the same boat as well, for some reason my music apps can’t seem to see my Google smart speakers, but strangely they can see my Nvidia shield and cast to that.
Looked through my app permissions I honestly can’t see anything out of the ordinary or plainly obvious. Both my speakers and android TV (shield) are on separate segment VLAN.
As for granting the permission, I generally like to grant on a app by app basis, lots of apps ask for internet access as a example but don’t actually require it to function. All my game apps for example are completely offline.
My phone is still on 14 so uuuhhh I’m fine I guess?
Thanks for the heads up. This would have been a nasty surprise followed by unknown duration of hair pulling.
Do you have any network segmentation is all your stuff on the same lan?
You also could try IPv6 public or private addresses
Ran into this issue a few days ago, exactly the same way you described.
I am on GrapheneOS and figured it was something to do with a a setting where it’s blocking network access for my specific browser app. After reading your post I see it’s a android 17 feature.
Checked all the settings in my browsers related to DNS at first and was stumped for a bit, until I flipped on the nearby device setting and everything worked.
I also looked into the DNS settings under Network & Internet > Private DNS. Make sure your phone is using your local networks DNS server. Just make sure to understand the implications of changing this (especially when you disconnect from you’re home networks DNS). Also making sure your home DNS is not defaulting to your ISP DNS.
Two websites that help me sanity check myself
- Dnscheck.tools
- dnsleaktest.com
I had this issue in firefox. And only firefox. Was pulling my hair for hours. Wish I had been warned.
Anyway I just gave firefox the permission and the issue was resolved. Native apps seem unaffected. Which makes me think maybe this is an opt in setting right now?
Took me about an hour of reconfiguring everything in my network and still not having my phone load the damn page to finally try it on my desktop and it worked flawlessly, rebooted my phone and it finally gave me the pop up in the picture. So stupid.
My solution is LineageOS as it functions on dozens if not a couple hundred phones. Rocking a One+ currently.
I am also a LineageOS user, though this feature seems like a good feature. You can block apps from being able to access your local network, which seems like a welcome restriction.









