Hi everyone, I’m hosting NextCloud AIO (26 Spring version) on a dedicated laptop at home. A strange connectivity issue has started occurring within the last few days: I cannot access NextCloud from my home Wi-Fi network on my Android cell phone. Instead, I get a generic “Address Not Found” page that states that “The browser could not find the host server for the provided address.” (I’m attempting to access NextCloud by entering my site’s domain, rather than my local IP address.)
This is odd, since I’m able to access my NextCloud instance just fine on my main laptop (which is separate from the laptop on which NextCloud AIO is hosted) when connected to my Wi-Fi. In addition, I can access NextCloud from my phone when it’s connected to my 5G celluar network.
Any ideas what might be going on here? And has anyone else encountered something similar? This issue only emerged in the past few days.
I did also try clearing my mobile browser’s cache and data, but the problem persisted.
Hi, I sometimes have issues like that too. In my case, it’s because I have “Privat DNS” enabled on my Android phone under Connections > More connection settings. It works when it’s set to “Automatic,” but not when I use AdGuard’s DNS.
Never the less under specific circumstances Android 17 devices are affected by several problems to connect to local network services by this “security feature” that has been implemented since this Android OS has been released
If you use still Android <= 16 you shouldn’t be affected - otherwise it could be a further step to investigate to!
After installing the Android app “Ping Tools” you can check your network settings f.e. do a ping to your Nextcloud instance domain name. If you get the answer “Unknown host”, you will need to reconfigure your router.
Thanks, everyone! I double-checked and am actually still on Android 16, so I don’t think this issue is related to the ‘Local network permission’ issue that @chrissi55 raised. I did change my Private DNS setting from Automatic (which it had been on) to Off, but this didn’t fix my issue either.
I’m thinking that I ought to try resetting my router to see whether that resolves the issue.
Install the Ping Tools and check the IP-address called by ping < nextcloud host name >
Also check, whether your DNS resolves IPv6-addresses properly as well as your provider’s public DNS server.
@Simon_Meyer It’s a Tp-Link Deco router. Have been thinking of switching away from it but it’s what I have at the moment.
@Mornsgrans I searched on the Play Store for both ‘Pingtools’ and ‘Ping Tools’, but I didn’t see an exact match. Are you sure the app hasn’t been renamed or discontinued? I’m sure there’s another one that could work, though I wouldn’t want to download a malicious app by accident.
Hmm…per AI your router doesn’t support Split DNS, that’s unfortunate.
As I understand from your initial post, your Nextcloud instance is reachable from public internet without any VPN (Tailscale et al) - correct?
Do you use Cloudflare?
Your phone, when connected to your WLAN, is it connected to the exact same WLAN as your laptop or do you have something like a Guest WLAN?
Thanks for the prompt and detailed responses! @Simon_Meyer That’s correct–no VPN, TailScale instance, etc. is required in order to connect to my site via the public internet. (Which is why I have 2FA set up.) And yes, my phone is connected to the exact same Wi-Fi network as my laptop.
@Mornsgrans Thanks for clarifying that. Maybe this is just a Samsung thing, but it turns out that that app can’t be downloaded onto my Galaxy S24 Ultra. I did however find a similar app called “IP Tools: Network Utilities” that seems to perform a similar service.
I tried pinging my site’s URL via both Wi-Fi and my 5G network connection. On Wi-Fi, all 10 attempts immediately returned a “Timed out” message. On 5G, after some delay, I got the same ‘Timed out’ message, but I did see my public IP address next to my site name (e.g. ‘mysitename.mynextcloud.com 68.123.194.185’). (I didn’t see this IP address next to my site name when connecting via Wi-Fi.) This suggests that my phone is able to find the actual IP address associated with my NextCloud server on my mobile network, but not on my Wi-Fi? (If I’m misinterpreting this, just let me know–I’m a novice when it comes to networking, as you can probably tell by now!)
There were few similar posts here recently. This could be another Split Brain DNS related issue. Many consumer routers don’t support this any more and it seems like ISPs may be patching routers to remove this as it is considered a security issue. This is a common issue when self-hosting at home.
The solution is to run a local DNS server on your network, so for your local devices your domain name resolves to your local IP address rather than your public IP.
What happens is that your local device resolves your domain to your public ip, so the request has to go out to the internet and then back to your LAN where the actual IP of you server is different (local IP) so the router blocks this.
Say, your local device sends a request to your default DNS server and mysitename.mynextcloud.com resolves to your public IP of 68.123.194.185, then that request goes back through your router (via port forwarding) and the actual address of your server is different, say 192.168.1.2 → that’s a mismatch that amounts to DNS hijacking.
This used to work but based on what I’ve seen ISPs may be patching existing routers to remove it as it can be exploited. I never had a router that supported this, always had to run my own DNS as accessing Nextcloud via IP is not reliable as it expects a domain name. There is also performance hit to this going out and back.
I don’t know why your laptop can connect and your phone can’t. There is likely some information and details on your setup missing just like in the other threads on this topic.
Also, pinging isn’t reliable over the internet as it’s often blocked so lack of response to pings is inconclusive as it may simply be blocked. Try traceroute/tracert or nslookup and see what IP you get.
@hap, all Infos you got here so far are hints thats shows you possible reasons for the issue you have with your phone to reach your NC-Server from your LAN. But i wonder about this:
That means your router’s integrated DNS-Server is in general able to deliver the local IP of your NC-Servers IP-Address correct to clients in your LAN. So you need to figure out what IP-Address your local DNS-Server delivers back to your main laptop. Command line nslookup would be a propper tool to answer this question. Important to know: do you get back only an IPv4 or also an IPv6-Address with nslookup and your phone does not use IPv6?
No its not only a Samsung thing. PingTools Network Utilities from Yaroslav Syrytsia is not offered for my Motorola (Android 16) too. Also it is in my eyes a malicious app, since it would bombard with adverts. But also your choosen IP Tools: Network Utilities contains adverts and in-app purchases
I do use instead Termux from Fredrik Fornwall (https://play.google.com/store/apps/details?id=com.termux). No adverts. It works like command line Linux and offers app store similar to command line Linux to add tools like nslookup, etc.
The Wikipedia article is a bit overcomplicated imo. I doubt someone would implement a solution in his home-setup where the same DNS server provides different authoritative answers based on the request’s source address.
And if I remember correctly it’s a good practice to have different servers for authoritative and non-authoritative requests.
Yes, it is over complicated, it was just to illustrate the idea. At home, we don’t have the resources usually, nor the need, to to have different DNS servers for authoritative and non-authoritative requests.
But that’s digressing and besides the point and scope of this thread.
The idea is that the domain name of your home server resolves via different DNS server at home, to your local IP (a local DNS, your own) and a different DNS server outside (whatever DNS is assigned by the network you’re on) that resolves the same domain to your public IP.
So, in a way you are using “different servers based on the request’s source address”: one is your own that you run at home and the others are the ones assigned by networks elsewhere.
I’ve gone a little bit off-topic with @anon85251929 , sorry for that.
Back to your problem and how to solve it:
If supported install OpenWRT on your router. This way you don’t have to buy a new one. With OpenWRT you can use Split DNS.
If that’s not an option, consider using Cloudflare. They have a free tier which you can use. Since all traffic is proxied through their servers your data will make a round-trip, i.e. not suitable if you don’t have fast internet connection.
Thanks! Here’s the output of nslookup [my NextCloud domain] on my Linux desktop:
Server: [Looks like a local IP address]
Address: [Looks like a local IP address]
Non-authoritative answer:
[my domain] canonical name = [DDNS domain that I assigned my non-static public IP address via TP-Link's DDNS service.]
Name: [DDNS domain]
Address: [My actual, non-static public IP address]
** server can't find [DDNS domain]: NXDOMAIN
(I initially got a message saying that the server couldn’t find my NextCloud domain, but it worked the second time around.)
Meanwhile, when entering the same command via Termux (thanks for the suggestion, @adelaar ), I get the following output when connected both to my local Wi-Fi and to my cellular network:
Server: 8.8.8.8 [Google's public DNS server, I think]
Address: 8.8.8.8#53
server can't find [my NextCloud domain]: NXDOMAIN
I’m not sure why this would be the case, since I confirmed that entering my NextCloud domain into my web browser allows me to access my site on a celluar (but not Wi-Fi) connection.
I found it interesting that the Server and Address entries for my desktop-based searches appeared to point to a local IP address, whereas those on my phone pointed towards Google’s public DNS server. Could that be part of the issue?
Thanks everyone for your help! We welcomed a new child into our family last week, so I haven’t had much time to troubleshoot all of this on my own–but your assistance is greatly appreciated.
Sorry, i should have mentioned that. nslookup of Termux allways ask 8.8.8.8 by default. You need to force nslookup of Termux to ask another DNS. How to do that? Quite easy:
nslookup <yourDomain> 1.1.1.1
Would ask the DNS-Server 1.1.1.1 (Cloudflare). But that wont help you within your LAN. You need to ask within your LAN the DNS of your Router. So instead of adding 1.1.1.1 you have to add the LAN-IPv4 of your Router, eg. 192.168.1.1. It shall looks like:
nslookup <yourDomain> <yourRoutersLAN-IPv4>
But;
in general does not looks good. 8.8.8.8, 1.1.1.1 and also 9.9.9.9 shall all find your Nextcloud-Servers Domain. Something seems to be wrong with your Domain.