Connectivity (DNS) Issues on Mobile Hotspot Only (NetworkManager)

Hi everyone,

I’m currently running openSUSE Tumbleweed with the GNOME desktop environment on my laptop, using NetworkManager (not Wicked), and I haven’t installed YaST BTW (minimal install).

I’m located in Iran, where due to the current war, internet restrictions have increased significantly. Since these changes, I’ve noticed a strange and frustrating issue with connecting via mobile hotspot Wi-Fi to my phone (which uses a cellular network):

:mag: The Problem

  • When I connect my laptop to my mobile hotspot, I have no connectivity and no website loads and Chrome gives DNS-related errors like:

DNS_PROBE_FINISHED_NO_INTERNET

  • When I run:
nslookup google.com

I get:

;; communications error to 192.168.1.1#53: timed out
;; no servers could be reached

  • However, the same mobile hotspot:
    • Works perfectly on my phone (can open Google and other sites);
    • Works fine on other Linux distros (Fedora, Ubuntu) using a live USB on the same laptop.

So the problem seems to be specific to how Tumbleweed handles mobile hotspots.

:pushpin: Additional Info

  • My /etc/resolv.conf contains:
nameserver 192.168.1.1
  • On my home TD-LTE Wi-Fi, DNS resolution works fine, and websites load as expected. It should be noted that due to how censoring works here, what is restricted on my TD-LTE Wi-Fi and my mobile hotspot could be different
  • No proxy or VPN is enabled.
  • I suspect the issue is DNS-related, possibly due to how Tumbleweed configures DNS via NetworkManager when using mobile hotspots. It could be that something that works on my TD-LTE Wi-Fi is blocked on the cellular network provided by the hotspot. The hotspot worked just fine before the current added restrictions.

:white_check_mark: Tried (and failed) workaround

  • I already tried setting custom DNS on the hotspot connection using the gnome GUI where in the IPv4 tab, IPv4 Method is set to Automatic (DHCP) and I put 8.8.8.8, 8.8.4.4, 1.1.1.1 for DNS and reconnected.

Thanks in advance :pray:
Let me know if you’d like me to dig in with more logs or debug info.

If your resolv.conf contains nothing else, then you’ve likely statically defined the DNS server, and the DNS from your hotspot isn’t being used.

Mine contains the following text (PII obscured):

### /etc/resolv.conf is a symlink to /run/netconfig/resolv.conf
### autogenerated by netconfig!
#
# Before you change this file manually, consider to define the
# static DNS configuration using the following variables in the
# /etc/sysconfig/network/config file:
#     NETCONFIG_DNS_STATIC_SEARCHLIST
#     NETCONFIG_DNS_STATIC_SERVERS
#     NETCONFIG_DNS_FORWARDER
# or disable DNS configuration updates via netconfig by setting:
#     NETCONFIG_DNS_POLICY=''
#
# See also the netconfig(8) manual page and other documentation.
#
### Call "netconfig update -f" to force adjusting of /etc/resolv.conf.
search my.localdomain
nameserver x.x.x.x

The local nameserver address is served to the host by my router’s DHCP server.

If you check your IP address on your system connected to the hotspot, compare that to the DNS server you’ve got configured; it probably isn’t in the same IP address block.

Thank you so much for your quick and helpful response — you were absolutely right to suspect the DNS server mismatch and the way /etc/resolv.conf was being managed!

It turns out that my system was missing the sysconfig-netconfig package, so /etc/resolv.conf was not being managed by netconfig at all — it wasn’t even a symlink to /run/netconfig/resolv.conf. Because of that, my DNS configuration wasn’t being updated correctly when switching networks, and I was stuck with a stale nameserver (192.168.1.1) even when connecting via mobile hotspot.

I installed the missing package with:

bash

CopyEdit

sudo zypper install sysconfig-netconfig

Then ran:

sudo netconfig update -f

And after that, /etc/resolv.conf became a proper symlink to the autogenerated file, just like in your example. Now it updates dynamically when I change networks, and the hotspot DNS issues are completely resolved!

I suspect the missing package was due to my own minimal install approach — I’ve been trying to keep my system as lean as possible, and probably left something essential out in the process.

Anyway, thanks again for pointing me in the right direction!

1 Like