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?

  • wholookshere@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    3
    ·
    5 hours ago

    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.

    • Rai@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 hours ago

      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!

      • KyuubiNoKitsune@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 hours ago

        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.

        • Rai@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          1
          ·
          5 minutes ago

          Thank you! I currently do run a PiHole, which I’ve been running for like six years? I really need to get that updated as well hahaha. I’ll look into doing it they way!

      • wholookshere@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 hours ago

        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.

      • tburkhol@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 hours ago

        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.

        • Rai@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 minutes ago

          That’s so sick! That’s definitely above my skill level at the moment, but I will save this for when I’m more knowledgeable—thank you much!