Skip to content

Linux Troubleshooting Guide

Linux Wi-Fi Troubleshooting: Fix Missing Adapters, Disconnects and No Internet

Fix Linux Wi-Fi problems such as missing adapters, dropped connections, driver issues, slow speeds and NetworkManager errors.

Linux Wi-Fi Troubleshooting becomes much easier once you identify exactly where the wireless connection is failing. “Wi-Fi is not working” can describe several very different problems on Linux.

Sometimes Linux cannot see the wireless adapter at all. Sometimes the adapter is detected but the radio is blocked. You may be connected to the access point but unable to reach the internet, or the connection may work for ten minutes and then drop. A driver or firmware update can cause trouble, but so can DNS, NetworkManager, signal quality, power management, router settings, and simple saved-profile problems.

The quickest way to fix Wi-Fi is to identify which part is failing before changing drivers.

On many desktop distributions, NetworkManager handles the connection, while the Linux kernel and a hardware-specific driver expose the wireless adapter. Tools such as nmcli, rfkill, ip, and the kernel logs can tell you where the connection is breaking.

Before installing a driver: confirm the exact Wi-Fi chipset and the driver Linux is currently using. Installing a random Realtek, Broadcom, Intel, or MediaTek package because another laptop had similar symptoms can make troubleshooting harder.

Quick Diagnosis: Match the Wi-Fi Symptom to the Right Check

Start with what you can actually observe.

What is happening?Check first
No Wi-Fi option anywhereAdapter detection, driver, rfkill
Wi-Fi option exists but no networks appearRadio state, scanning, driver/firmware
Network appears but connection failsSaved profile, password, security mode
Connected but no internetIP address, gateway, DNS, captive portal
Internet works by IP but not by nameDNS
Connection drops repeatedlySignal, driver, power saving, router
Works on 2.4 GHz but not 5/6 GHzAdapter capability, regulatory/router settings
Wi-Fi broke after a kernel updateDriver/firmware regression
USB Wi-Fi disappearsUSB power, port, driver, hardware
Only one network failsRouter/security/profile issue more likely than Linux-wide failure
Ethernet works but Wi-Fi does notWireless stack, adapter or profile
All devices lose internetRouter/ISP rather than the Linux computer

If every phone and computer in the house loses internet at the same time, do not rebuild NetworkManager on the Linux machine. Check the router and upstream connection first.

1. Check Whether Linux Can See the Wi-Fi Adapter

Start by asking NetworkManager what network devices it knows about:

nmcli device status

A normal result may include a device with type wifi.

You can also inspect interfaces with:

ip link

If there is no wireless interface, identify the hardware.

For an internal PCI/PCIe adapter:

lspci -k | grep -A3 -i network

For a USB adapter:

lsusb

Pay attention to the chipset and, for PCI devices, the line showing the kernel driver in use.

This distinction matters. “Realtek Wi-Fi” is not one driver. Realtek alone has many chipsets with different Linux support. The same is true for Intel, Broadcom, Qualcomm Atheros, and MediaTek.

If the adapter appears in lspci or lsusb but no wireless interface appears in nmcli device status, the driver, firmware, or NetworkManager state deserves closer attention.

Start here

Recommended guides

2. Make Sure Wi-Fi Is Not Disabled or Blocked

Check NetworkManager’s radio state:

nmcli radio

You can explicitly enable Wi-Fi with:

nmcli radio wifi on

Now check Linux’s radio-frequency kill switches:

rfkill list

Look for the wireless device.

Two states matter:

  • Soft blocked: software has disabled the radio.
  • Hard blocked: a hardware switch, firmware function, or platform control has disabled it.

A soft block can usually be cleared with:

sudo rfkill unblock wifi

If the device remains hard blocked, look for:

  • a physical wireless switch;
  • a laptop function-key combination;
  • airplane mode;
  • UEFI/BIOS wireless settings.

Software cannot normally override a genuine hardware block.

3. Check NetworkManager and Scan for Networks

If the adapter exists and is not blocked, check NetworkManager:

systemctl status NetworkManager

On distributions using NetworkManager, it should normally be active.

List Wi-Fi access points:

nmcli device wifi list

To request a fresh scan:

nmcli device wifi list --rescan yes

The official NetworkManager nmcli documentation supports listing access points, forcing a rescan, inspecting devices, and connecting to Wi-Fi from the command line.

If networks appear

The radio and driver are doing enough to scan. Focus on the connection profile, authentication, IP configuration, or router.

If no networks appear

Compare with another nearby device. If your phone can see several networks but Linux sees none, check:

  • kernel/firmware logs;
  • driver state;
  • regulatory/band compatibility;
  • whether the interface is actually up.

Do not assume weak signal if Linux cannot see an access point while other devices beside it can.

4. Connect From the Command Line to Separate GUI Problems

If the desktop Wi-Fi menu behaves strangely, nmcli provides a useful second path.

List networks:

nmcli device wifi list

Then connect interactively:

nmcli --ask device wifi connect "YOUR_SSID"

Using --ask avoids putting the Wi-Fi password directly into your shell command history.

If nmcli connects successfully while the graphical network menu fails, the underlying Wi-Fi stack may be fine and the problem may be limited to the desktop interface or saved GUI state.

5. Remove a Broken Saved Wi-Fi Profile

A connection can fail because the saved profile contains an old password or incompatible setting.

List saved profiles:

nmcli connection show

Find the connection name.

Before deleting it, you can inspect it:

nmcli connection show "CONNECTION_NAME"

If the profile is clearly stale and you know the Wi-Fi password, delete the saved connection:

nmcli connection delete "CONNECTION_NAME"

Then reconnect:

nmcli --ask device wifi connect "YOUR_SSID"

Deleting a saved NetworkManager profile does not delete the wireless network from the router. It removes that computer’s saved configuration, allowing NetworkManager to create a clean profile.

This is particularly useful after:

  • changing the Wi-Fi password;
  • changing router security;
  • replacing a router while reusing the SSID;
  • a connection profile becoming corrupted.

6. Connected to Wi-Fi but There Is No Internet

A Wi-Fi icon only tells you that the computer has associated with an access point. It does not prove that internet access or DNS is working.

Check the device details:

nmcli device show

You are looking for an assigned IP address, gateway, and DNS information.

Then test the network in stages.

Can you reach the router?

Find the default gateway:

ip route

A typical result contains a line beginning with default via.

Ping that gateway using the actual address shown:

ping -c 3 GATEWAY_IP

If you cannot reach the local gateway, the problem is between your Linux machine and the router.

Can you reach the internet by IP address?

Try:

ping -c 3 1.1.1.1

If that works, basic internet routing is available.

Can you resolve a domain name?

Try:

ping -c 3 example.com

If an IP address works but a domain name does not, focus on DNS rather than replacing the Wi-Fi driver.

7. Check DNS When Wi-Fi Says Connected

On systems using systemd-resolved, inspect:

resolvectl status

You can also see what NetworkManager believes the device is using:

nmcli device show

Look for DNS entries.

A DNS problem often looks like this:

  • Wi-Fi shows connected;
  • the router responds;
  • ping 1.1.1.1 works;
  • websites fail by name.

Before changing DNS providers permanently, reconnect the network or restart the network service and test again. A bad DHCP-provided DNS address or temporary router problem can resolve without changing the system globally.

If multiple devices on the same router also have DNS trouble, fix the router or upstream DNS problem rather than applying a Linux-only workaround.

8. Check for a Captive Portal

Hotel, airport, university, and public Wi-Fi networks may let the computer associate while blocking normal internet access until you sign in through a web page.

NetworkManager can report connectivity state:

nmcli networking connectivity check

Possible states include full, limited, portal, none, or unknown.

If you are behind a captive portal, open a browser and complete the network’s sign-in page.

Do not treat a portal connection as a broken Wi-Fi driver simply because normal websites initially fail.

9. Read the Driver and Firmware Messages

If Linux sees the adapter but scanning or connection is unreliable, look at kernel messages.

First identify the driver:

lspci -k | grep -A3 -i network

Then inspect relevant boot messages:

dmesg | grep -iE 'wifi|wlan|wireless|firmware|iwlwifi|ath|rtl|brcm|mt76'

Depending on your distribution’s security settings, reading all kernel messages may require elevated privileges.

Look for messages mentioning:

  • failed firmware loading;
  • device initialization failure;
  • repeated resets;
  • authentication problems;
  • driver crashes;
  • hardware disappearing.

A specific firmware error is much more useful than searching for “Linux Wi-Fi driver” and installing the first package you find.

10. Wi-Fi Broke After a Kernel Update

Wireless drivers ship largely with the Linux kernel, so a kernel update can occasionally expose a regression.

If Wi-Fi worked immediately before the update:

  1. identify the adapter and driver;
  2. check kernel messages;
  3. boot a previously working kernel if your distribution keeps one;
  4. compare the behavior.

If the older kernel restores Wi-Fi, you have useful evidence that the problem is kernel/driver-related.

Do not permanently pin an old kernel without checking whether your distribution has already issued an update or firmware fix.

11. Firmware Is Missing

Many wireless adapters require firmware files in addition to a kernel driver.

A missing-firmware problem may show up in dmesg with a clear request for a filename.

Use the package supplied by your distribution whenever possible. Firmware package names differ between Debian, Ubuntu, Fedora, Arch Linux, openSUSE, and other distributions.

Avoid downloading an arbitrary binary from a file-sharing site.

If you identify a missing firmware file, check:

  • your distribution’s package database;
  • the distribution’s hardware/firmware documentation;
  • Linux Wireless documentation;
  • the adapter vendor where appropriate.

Restart or reload the driver only after the correct firmware is installed.

12. Wi-Fi Keeps Disconnecting

Intermittent Wi-Fi is harder to diagnose because a connection can be technically functional while still being unreliable.

First establish the pattern.

Does it disconnect:

  • only on battery power?
  • after suspend?
  • only on one router?
  • only on 5 GHz?
  • when Bluetooth is active?
  • under heavy downloads?
  • only with a USB adapter?

Watch NetworkManager while the problem occurs:

journalctl -u NetworkManager -f

Press Ctrl+C to stop following the log.

Look for repeated authentication failures, carrier changes, device resets, DHCP failures, or disconnect reasons.

Also compare signal quality:

nmcli device wifi list

If every device struggles in the same room, improve router placement or signal before modifying Linux.

13. Wi-Fi Is Slow on Linux

Do not judge Wi-Fi performance from an internet speed test alone. The bottleneck could be the ISP, router, signal, Wi-Fi band, or Linux device.

Check the basics:

  • Are you connected to 2.4 GHz, 5 GHz, or 6 GHz?
  • Is the signal weak?
  • Is another device saturating the internet connection?
  • Does Ethernet perform normally?
  • Is the same laptop faster on a different Wi-Fi network?
  • Is Bluetooth activity affecting 2.4 GHz performance?

Use:

nmcli device wifi list

to view nearby networks, channels, and signal information.

Congested 2.4 GHz environments can perform poorly even when the driver is working correctly.

Before replacing a driver, test the computer closer to the router and on another supported band.

14. 5 GHz or 6 GHz Network Does Not Appear

A wireless adapter must support the band you are trying to use.

Older adapters may support only 2.4 GHz. Support for 6 GHz requires newer Wi-Fi hardware and compatible software/regulatory behavior.

If Linux can see 2.4 GHz networks but not a specific higher-band SSID:

  1. identify the adapter model;
  2. check its supported bands;
  3. confirm the router is broadcasting the SSID;
  4. check that other compatible devices can see it;
  5. inspect driver/firmware logs.

Do not install an unrelated driver in an attempt to add a radio band the physical adapter does not support.

15. Hidden Wi-Fi Networks

A hidden SSID does not broadcast its name normally, so it may not appear in an ordinary scan.

You can connect with NetworkManager by specifying the network information. For example:

nmcli --ask device wifi connect "YOUR_SSID" hidden yes

Hidden SSIDs do not provide meaningful additional wireless security. They simply change how the network is advertised.

If a hidden network is unreliable, test temporarily with normal SSID broadcasting to simplify troubleshooting.

16. USB Wi-Fi Adapter Keeps Disappearing

If a USB adapter appears and disappears, check hardware before rewriting network configuration.

Try:

  • another USB port;
  • a direct motherboard/laptop port rather than a hub;
  • another computer if available;
  • checking lsusb before and after the failure;
  • inspecting kernel logs.

Watch recent kernel messages:

dmesg | tail -n 80

If the USB device itself disconnects from the bus, NetworkManager cannot fix the connection until the hardware returns.

Unpowered hubs, damaged connectors, USB power behavior, and marginal adapters can all look like “Linux Wi-Fi” problems.

17. Wi-Fi and Bluetooth Interfere With Each Other

Wi-Fi and Bluetooth can share hardware and spectrum, particularly around 2.4 GHz.

If Wi-Fi becomes unstable only while a Bluetooth headset, controller, or mouse is active, compare:

  • Wi-Fi on 5 GHz versus 2.4 GHz;
  • Bluetooth on versus off;
  • distance from the router;
  • driver/firmware updates.

Switching the Wi-Fi connection to 5 GHz can be a useful test when both the router and adapter support it.

Do not assume coexistence problems are universal. Good modern hardware can handle simultaneous Wi-Fi and Bluetooth normally, so repeatable behavior on your machine is the important evidence.

18. NetworkManager Says the Device Is Unmanaged

Run:

nmcli device status

If the Wi-Fi device is listed as unmanaged, NetworkManager is not currently controlling it.

This can happen because:

  • another networking system is managing the interface;
  • NetworkManager configuration excludes it;
  • the distribution has a server-oriented network setup;
  • custom configuration was added previously.

Do not immediately force NetworkManager to manage the device on a server or custom networking setup. First understand which network manager the distribution is intentionally using.

On a normal desktop installation that is supposed to use NetworkManager, review its configuration and any distribution-specific networking tools.

19. Restart Networking Without Rebooting the Whole Computer

For a temporary NetworkManager problem, you can toggle networking:

nmcli networking off

Then:

nmcli networking on

Or disconnect and reconnect the Wi-Fi device using the desktop interface.

You can also restart NetworkManager on systems where it is the intended network service:

sudo systemctl restart NetworkManager

Expect the network connection to drop during the restart.

If restarting NetworkManager fixes the problem every hour, read the logs and find the underlying failure rather than turning restarts into the permanent solution.

20. Do Not Replace the Driver Until You Know the Chipset

One of the most common Wi-Fi troubleshooting mistakes is installing a driver for the brand rather than the exact chipset.

Before changing drivers, record:

lspci -k | grep -A3 -i network

or, for USB:

lsusb

Then determine:

  • chipset/vendor ID;
  • kernel driver currently in use;
  • kernel version;
  • firmware errors;
  • whether support already exists in the current kernel.

For in-kernel drivers, a newer supported kernel or firmware package is often preferable to a third-party driver copied from an old repository.

Out-of-tree drivers can require rebuilding after kernel updates and may introduce new problems.

A Practical Linux Wi-Fi Troubleshooting Order

When wireless networking fails, use this sequence:

  1. Check whether other devices can use the same router.
  2. Run nmcli device status.
  3. Identify the wireless chipset with lspci -k or lsusb.
  4. Run rfkill list.
  5. Make sure Wi-Fi is enabled with nmcli radio.
  6. Scan with nmcli device wifi list --rescan yes.
  7. Test a clean saved connection profile if authentication fails.
  8. Check IP address, gateway, and DNS when connected but offline.
  9. Read NetworkManager and kernel logs.
  10. Compare an older kernel if the issue began after an update.
  11. Install or change drivers only after identifying the exact hardware and failure.

That process tells you whether the problem belongs to the hardware, driver, radio state, connection profile, IP configuration, DNS, router, or internet connection.

NetworkManager, the Wi-Fi Driver and Firmware: What Each One Does

The Wi-Fi hardware is the physical wireless adapter.

The kernel driver lets Linux communicate with that adapter. Linux wireless support commonly uses kernel components such as cfg80211/mac80211 along with hardware-specific drivers.

Firmware is code loaded onto many adapters by the operating system. A driver can be present while the device still fails because required firmware is missing.

NetworkManager manages network devices and connection profiles on many Linux desktops. Its nmcli tool can report device state, scan for access points, create connections, and diagnose connectivity without relying on the graphical desktop menu.

Understanding these layers prevents a DNS problem from being mistaken for a driver problem—or a blocked radio from being treated as a broken router.

Official References Worth Keeping Handy

Useful primary documentation includes:

For driver and firmware installation, also use the documentation for your specific Linux distribution. Package names, kernel versions, firmware bundles, and networking defaults vary between distributions.

Linux Wi-Fi troubleshooting is much easier once “Wi-Fi does not work” becomes a specific statement such as “the adapter is not detected,” “the radio is blocked,” or “DNS fails after the connection is established.” Find that boundary first, then fix the part that is actually broken.

More help

More Wi-Fi guides