this post was submitted on 22 Aug 2024
10 points (85.7% liked)

Selfhosted

40006 readers
1126 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

I have a home network with an internal DNS resolver. I have some subdomains (public) that maps to a real world IP address, and maps to the home server private address when inside home.

In short, i use unbound and have added some local-data entries so that when at home, those subdomains points to 192.168.x.y instead.

All works perfectly fine from Windows and from Linux PCs.

Android, instead, doesnt work.

With dynamic DHCP allocation on android, the names cannot be resolved (ping will fail...) from the android devices. With specific global DNS servers (like dns.adguard.com) of course will always resolve to the public IP.

The only solution i found is to disable DHCP for the Wifi on android and set a static IP with the 192.168.x.y as DNS server, in this case it will work.

But why? Aynbody has any hints?

It's like Android has some kind of DNS binding protection enabled by default, but i cannot find any information at all.

top 13 comments
sorted by: hot top controversial new old
[–] [email protected] 6 points 2 months ago

The phone or browser may be using DNS over HTTP (aka DoH), check if you can disable it for the wifi network. You may have to disable it on the phone or browser to get your desired behaviour - look up directions for your browser.

[–] [email protected] 5 points 2 months ago* (last edited 2 months ago) (1 children)

Do you have private DNS enabled on Android? That would use a public DNS server by default regardless of what DHCP configures.

Also check your browsers, some have their own DNS settings.

[–] [email protected] 1 points 2 months ago (1 children)

Private DNS is disabled.

And even ping from tmux fails...

[–] [email protected] 3 points 2 months ago (1 children)

Strange, have you checked the interface info on Android to see what DNS info it's getting from the DHCP server?

Also check that it's getting an IP on the 192.168.x.y network, and not some other subnet if the AP is doing funky things.

[–] [email protected] 2 points 2 months ago (1 children)

It's blatantly ignoring the DNS i set via DHCP it seems. Only if i set it manually (static) it will use it! I have no subnets

[–] [email protected] 1 points 2 months ago (1 children)

Does a PC connected to the same wifi network as the phone get the proper DNS servers and work like it should?

[–] [email protected] 1 points 2 months ago (1 children)

Yes, perfectly... My guess is android bypass local resolver and goes via DoH l, which sucks hard

[–] [email protected] 1 points 2 months ago (1 children)

If you have private DNS turned off it doesn't, unless maybe you have some manufacturer specific weirdness going on with extra software.

[–] [email protected] 1 points 2 months ago (1 children)

Well, my experience is that unless you set static IP+DNS in android WiFi advanced networks, it will not obey the dhcp option 6.

LineageOS, vanilla with mind the gapps

[–] [email protected] 1 points 2 months ago

Odd, I've had a Pixel, Oneplus 7 pro, and now a Galaxy S21 and they all pick up my DNS server from DHCP without any issues.

[–] [email protected] 3 points 2 months ago (1 children)

You mentioned ping. If you're using Termux you may need to manually update its DNS settings (different from the system DNS). The file is /data/data/com.termux/files/usr/etc/resolv.conf

To make it roam you probably want your home dns first then some internet resolvers after that.

[–] [email protected] 1 points 2 months ago

Thanks! This explains a few things... But not why Android is IGNORING my DNS pushed via DHCP even if private DNS is disabled...

[–] [email protected] 1 points 2 months ago* (last edited 2 months ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
AP WiFi Access Point
DHCP Dynamic Host Configuration Protocol, automates assignment of IPs when connecting to a network
DNS Domain Name Service/System
HTTP Hypertext Transfer Protocol, the Web
IP Internet Protocol

5 acronyms in this thread; the most compressed thread commented on today has 11 acronyms.

[Thread #933 for this sub, first seen 23rd Aug 2024, 06:15] [FAQ] [Full list] [Contact] [Source code]