Linux — Wi-Fi Login Page Not Showing

Most Linux distributions have partial captive portal support through NetworkManager. If the sign-in notification doesn't appear, here's how to handle it from both the GUI and the command line.

Quickest fix

Open Firefox or Chromium and navigate to http://neverssl.com. If the portal is functioning, the network will redirect you to the login page.

Custom DNS is the most common cause

If you've set a custom DNS in your connection profile, the portal can't intercept your lookups. Clear DNS with nmcli or the network settings GUI.

How Linux handles captive portals

NetworkManager (the network manager used by Ubuntu, Fedora, Pop!_OS, Manjaro, and most desktop distributions) performs connectivity checks using http://nmcheck.gnome.org/check_network_status.txt when you join a network. If the network redirects this request, NetworkManager marks the connection as "limited connectivity" and fires a GNOME notification. Without GNOME (KDE Plasma, XFCE, etc.) or if NetworkManager isn't running, no notification appears — you must open the portal manually.

Step 1 — Check for a GNOME / desktop notification

  1. Look for a notification in your desktop environment's notification area (top bar on GNOME, system tray on others)
  2. Click any "Sign in to Wi-Fi" or "Limited connectivity" notification — it should open a browser pointed at the portal
  3. On GNOME, the network icon in the top bar may show an exclamation mark — click the menu and look for a "Connect" option

Step 2 — Open the portal manually in a browser

  1. Open Firefox or Chromium
  2. Navigate to http://neverssl.com
  3. The network should redirect you to the portal login page
  4. If that doesn't work, try the default gateway directly:
    • http://192.168.1.1
    • http://10.0.0.1

Step 3 — Clear custom DNS via GUI

  1. Click the network icon in the system tray → open Wi-Fi Settings
  2. Click the gear icon next to the connected network
  3. Go to the IPv4 tab
  4. Clear the DNS field (leave it blank to use DHCP-assigned DNS)
  5. Click Apply and reconnect to the network

Step 4 — Clear custom DNS via nmcli

# List all saved connections to find the exact profile name
nmcli connection show

# Remove manually set DNS from the profile (replace 'YourSSID' with the network name)
nmcli connection modify "YourSSID" ipv4.dns ""
nmcli connection modify "YourSSID" ipv4.ignore-auto-dns no

# Bring the connection down and back up
nmcli connection down "YourSSID" && nmcli connection up "YourSSID"

Step 5 — Disable your VPN

The command depends on how your VPN is managed:

# NetworkManager VPN (PPTP, OpenVPN via NM)
nmcli connection down "YourVPNProfileName"

# WireGuard
sudo wg-quick down wg0

# OpenVPN systemd service
sudo systemctl stop openvpn@client

# Mullvad CLI
mullvad disconnect

# NordVPN CLI
nordvpn disconnect

Step 6 — Check NetworkManager connectivity checking

If NetworkManager has connectivity checking disabled, it won't detect the portal. Check and re-enable it:

# Check NetworkManager status
systemctl status NetworkManager

# Check current connectivity state
nmcli networking connectivity

# If output is 'none' or 'limited', force a recheck
nmcli networking connectivity check

Step 7 — Find the default gateway and open it directly

# Find your default gateway IP
ip route show default

# Open the gateway IP in a browser (substitute actual IP)
# e.g. http://192.168.100.1

Public networks often host the portal login page directly on the gateway IP. Navigate to it in your browser using plain HTTP.

Distributions without GNOME (KDE Plasma, XFCE, i3, etc.)

On non-GNOME desktops, portal detection notifications may not appear at all. Use the manual browser trigger (Step 2) or the nmcli gateway method (Step 7). On minimal installs without NetworkManager, you may need to manage DHCP and routing manually — dhclient wlan0 will re-acquire a DHCP lease and pick up the portal's DNS.