Ubuntu won't connect to Wi-Fi: Causes and solutions in 2026

You have installed Ubuntu Are you facing a problem: your system can't see available Wi-Fi networks or can't connect to them, despite other devices working reliably? This situation is familiar to many Linux users, especially after a fresh installation or kernel update. In 80% of cases, the problem stems from missing proprietary drivers, incorrect network settings, or conflicts with kernel modules.

Unlike Windows or macOS, where drivers for Wi-Fi adapters are usually installed automatically, Ubuntu often requires manual configuration — especially for new hardware. In this article, we'll cover all possible causes, from basic (a switched-off adapter) to complex (problems with NetworkManager or wpa_supplicant), and we'll offer proven solutions for each. You'll learn how to diagnose the problem, where to look for error logs, and which commands will help restore the connection.

1. Checking basic settings: adapter, airplane mode, and router

Before delving into driver settings, make sure the problem isn't just a surface issue. Start with a physical inspection:

  • 🔌 The Wi-Fi adapter is turned on: Laptops often have a hardware button or key combination (e.g. Fn + F2) to turn the wireless network on/off. On your PC, check to see if the antenna is disconnected from the adapter.
  • ✈️ Airplane mode is disabled: IN Ubuntu It can be activated accidentally through the notification panel or command rfkillCheck the blocking status:
rfkill list

If there is a line in the output Soft blocked: yes or Hard blocked: yes, unlock the adapter:

sudo rfkill unblock wifi

Also make sure that the problem is not on the router side:

  • 📡 The network is visible to other devices: Check if your network is visible on your smartphone or another computer.
  • 🔒 No MAC filteringSome routers block connections from unknown devices based on their MAC address. Find your adapter's MAC address using the command ip a and add it to the allowed list on the router.
  • 🔄 Network mode is compatible: Make sure that the router is not operating in wireless mode only. 802.11n/ac/ax (sometimes older adapters only support 802.11b/g).
📊 What Wi-Fi adapter do you have?
Built into the laptop
USB adapter
PCIe card
Don't know
⚠️ AttentionIf you're connecting to a public network (such as at a cafe or airport), check if it requires browser authentication. Some networks block access until you solve a captcha or enter your username/password.

2. Driver diagnostics: why Ubuntu doesn't detect Wi-Fi

The most common reason for the lack of Wi-Fi in Ubuntu — the wireless adapter driver is missing or malfunctioning. To check if the system recognizes your adapter, run the following:

lspci -knn | grep -iA3 net

Or for USB adapters:

lsusb

In the output, look for lines mentioning Network controller or WirelessIf there is a line next to it Kernel driver in use: [driver_name] — the driver is loaded. If instead you see Kernel modules: [empty] or unknown device, driver missing.

Typical driver problems:

  • 🚫 Proprietary driver missing: Many adapters (especially from Broadcom, Realtek, Ralink) require proprietary drivers that are not included in the kernel by default.
  • 🔄 Driver conflict: Sometimes the system tries to use an open driver (for example, b43 For Broadcom), which works unstably.
  • 🔧 The driver is out of date: After updating the kernel, the old driver may stop working.

To install a proprietary driver:

  1. Open Programs and Updates → Additional Drivers.
  2. Select the recommended driver for your adapter and click Apply changes.
  3. Reboot the system.

Check the adapter model with `lspci` or `lsusb` command |

Install the proprietary driver via "Additional Drivers"|

Reboot the system|

Check the connection with the `iwconfig` command-->

If the appropriate driver is not listed, you will have to install it manually. For example, for adapters Realtek RTL8821CE you will need to download the driver from GitHub and compile:

sudo apt install git dkms

git clone https://github.com/tomaspinho/rtl8821ce

cd rtl8821ce

chmod +x dkms-install.sh

sudo ./dkms-install.sh

sudo modprobe 8821ce

⚠️ Attention: After updating the kernel, manually installed drivers may stop working. To avoid this, use dkms (Dynamic Kernel Module Support) for automatic driver recompilation during an update.

3. Problems with NetworkManager And wpa_supplicant

If the driver is installed but Wi-Fi still doesn't work, the problem may lie in the network management services. Ubuntu There are two key components responsible for connecting to Wi-Fi:

  • NetworkManager — the main network manager (graphical and console interface).
  • wpa_supplicant — a daemon for authentication in Wi-Fi networks (runs in the background).

How to check their work:

  1. Make sure the services are running:
sudo systemctl status NetworkManager

sudo systemctl status wpa_supplicant

  1. If the services are not active, start them:
sudo systemctl start NetworkManager

sudo systemctl enable NetworkManager

If NetworkManager It works, but Wi-Fi doesn't connect, try restarting the service:

sudo systemctl restart NetworkManager

Typical mistakes:

  • 🔌 NetworkManager does not control the device: Check if configuration control is disabled. Open the file:
sudo nano /etc/NetworkManager/NetworkManager.conf

Make sure it contains the following lines:

[ifupdown]

managed=true

  • 🔒 Incorrect settings wpa_supplicant: If you manually edited /etc/wpa_supplicant/wpa_supplicant.conf, check your syntax. A configuration error may be blocking the connection.
  • 📡 Conflict with netplan or systemd-networkd: In new versions Ubuntu These tools can intercept network control. Check the configs in /etc/netplan/.

4. Security settings: Incorrect password or encryption type

Sometimes Ubuntu Can't connect to Wi-Fi due to incompatible security settings. For example:

  • 🔐 The router uses WPA3, and your adapter only supports WPA2.
  • 🔑 The password contains special characters that are not processed correctly NetworkManager.
  • 🌐 The network uses a hidden SSID (hidden network name).

How to check and fix:

  1. Please make sure you are entering the correct password. Ubuntu Password characters are displayed as asterisks, but their number may not match the actual number of characters.
  2. Try connecting to the network via terminal:
nmcli dev wifi connect "NETWORK_NAME" password "PASSWORD"

If the connection fails, check the network encryption type. To do this:

  1. On another device (for example, a smartphone), look at the router settings or use the command on Ubuntu:
sudo iwlist wlan0 scanning | grep -i "IE:"

Look for lines like WPA2 or CCMPIf the router uses WPA3, try switching temporarily to WPA2 in the router settings.

For hidden networks (hidden SSID) the connection must be made manually:

nmcli dev wifi connect "NETWORK_NAME" password "PASSWORD" hidden yes
Encryption type Compatibility with Ubuntu Solution
WPA3-Personal Partial (requires kernel 5.4+) Please update your kernel or use WPA2
WPA2-PSK (AES) Full Recommended mode
WPA2-PSK (TKIP) Outdated, unsafe Change your router settings to AES
WEP Outdated, not recommended Update your router's security settings

5. Conflicts with other programs (VPN, firewalls, antiviruses)

Some apps can block Wi-Fi connections even if your drivers and network settings are correct. Common culprits include:

  • 🛡️ Firewall (ufw, iptables): Firewall rules may block DHCP or DNS requests.
  • 🌍 VPN clients: Some VPNs (eg. OpenVPN or WireGuard) change network routes and can "break" the Wi-Fi connection.
  • 🔍 Antiviruses: Programs like ClamAV or ESET sometimes conflict with NetworkManager.
  • 📡 Other network managers: If you installed wicd or connman, they may conflict with NetworkManager.

How to diagnose:

  1. Check your firewall status:
sudo ufw status

If it is active, temporarily disable it:

sudo ufw disable
  1. View active VPN connections:
ip a | grep tun

If there are interfaces like tun0 or wg0, turn off the VPN.

  1. Check if there are any conflicting network managers:
ps aux | grep -E "wicd|connman"

If you find them, delete them:

sudo apt remove wicd connman
How to completely reset network settings in Ubuntu?

If the problem persists, you can reset all network settings to factory defaults. To do this, delete the following configuration files:

sudo rm /etc/NetworkManager/system-connections/*

sudo rm /etc/netplan/*

sudo apt purge network-manager

sudo apt install network-manager

sudo systemctl restart NetworkManager

Attention: After this, you will have to reconfigure all connections, including the wired network!

6. IP addressing issues (DHCP, static IP)

If Ubuntu If the Wi-Fi connection is broken, the internet connection might be failing to obtain an IP address. Typically, the network is configured to automatically obtain an address. DHCP, but sometimes it doesn't work. Check your current settings:

ip a show wlan0

If there is no line in the output inet 192.168.x.x or something similar, it means the IP address isn't assigned. Try getting it manually:

sudo dhclient wlan0

Common causes:

  • 🔄 The router does not issue an IP address.: Check if DHCP is enabled on your router and if the address pool is exhausted.
  • 🔒 Static IP conflicts: If you manually assigned an IP, it may be the same as another device on the network.
  • 🌐 Incorrect DNS: Even if the IP is obtained, incorrect DNS servers block internet access.

To assign a static IP (if required):

  1. Open connection settings:
nm-connection-editor
  1. Select your Wi-Fi connection and go to IPv4 settings.
  2. Set method Manual and enter:
  • Address: 192.168.1.100 (example, must be unique within your network).
  • Network mask: 255.255.255.0.
  • Gateway: 192.168.1.1 (your router's address).
  • DNS: 8.8.8.8, 8.8.4.4 (Google DNS) or 1.1.1.1 (Cloudflare).

If the Internet still doesn't work after making these changes, check your routes:

ip route

There should be a line with default via 192.168.1.1 (or your gateway). If it's not there, add the route manually:

sudo ip route add default via 192.168.1.1

7. Hardware problems: adapter or antenna failure

If none of the previous methods help, the problem may be hardware-related. This is especially true for:

  • 💻 Laptops after a fall or repair.
  • 🖥️ Desktop PCs with PCIe/Wi-Fi cards.
  • 🔌 USB adapters that are not detected by the system.

How to check:

  1. Check if the adapter is detected in the system:
dmesg | grep -i wifi

Look for errors like firmware missing or failed to load.

  1. Check the physical connection:
  • On a laptop: gently press on the case in the area of ​​the Wi-Fi adapter (sometimes the antenna contact comes off).
  • On PC: Remove and reinsert the Wi-Fi card into the slot PCIe.
  • For USB adapter: Try a different port or cable.
  1. Test the adapter on another device (if possible).

If in the output dmesg there is an error Direct firmware load for [file_name] failed, this means the kernel is missing the firmware file for the adapter. The solution is to download the missing file from the repository. linux-firmware and place it in /lib/firmware/.

⚠️ Attention: If the adapter is physically faulty, replacing it may be the only solution. Before purchasing a new one, check the model's compatibility with Ubuntu on the manufacturer's website or in the database Linux Wireless.

8. Updating the system and kernel as a last resort

If the problem appeared after an update or you are using an older version Ubuntu, the cause may be an outdated kernel or packages. Updating the system often resolves compatibility issues:

sudo apt update && sudo apt upgrade -y

sudo apt dist-upgrade -y

If Wi-Fi works after the update, but other problems appear (for example, unstable operation), try rolling back to the previous kernel version:

  1. View the list of installed kernels:
dpkg --list | grep linux-image
  1. Remove the problematic kernel (eg. 5.15.0-76):
sudo apt remove linux-image-5.15.0-76-generic
  1. Update GRUB:
sudo update-grub

If you use Ubuntu 22.04 LTS or newer, you can install a more recent kernel from the repository mainline:

sudo add-apt-repository ppa:cappelikan/ppa

sudo apt update

sudo apt install mainline

Then run mainline from the applications menu and select the latest stable kernel version.

FAQ: Frequently Asked Questions about Wi-Fi in Ubuntu

🔍 Why does Ubuntu see networks but not connect to them?

This is a typical authentication issue. Check:

  1. The password is correct (case-sensitive characters matter!).
  2. Router encryption type (try changing WPA3 on WPA2).
  3. Settings NetworkManager (sometimes deleting and re-adding the network helps).

Also try connecting via terminal:

nmcli dev wifi connect "NETWORK_NAME" password "PASSWORD"
🖥️ How do I find out the model of my Wi-Fi adapter?

Run one of the commands:

lspci -knn | grep -iA3 net # for PCIe adapters

lsusb # for USB adapters

Look for lines with Network controller or names like Realtek, Intel, Broadcom.

🔄 Ubuntu connects to Wi-Fi, but the internet isn't working. What should I do?

Check:

  1. Has the IP address been received (ip a show wlan0). If not - sudo dhclient wlan0.
  2. Is DNS working? (ping 8.8.8.8 And ping google.com). If the first one works, but the second one doesn't, enter the DNS manually.
  3. Are there any firewall blocks? (sudo ufw disable for the test).
🐧 Can I use Windows drivers in Ubuntu?

Yes, with the help of ndiswrapper, but this is not recommended. It's better to find a native Linux driver. If you still need it:

  1. Install ndiswrapper:
sudo apt install ndiswrapper-common ndiswrapper-utils
  1. Download the driver for Windows (.inf And .sys files).
  2. Install the driver:
sudo ndiswrapper -i driver.inf

sudo ndiswrapper -m

sudo modprobe ndiswrapper

After rebooting, the adapter should work, but there may be stability issues.

📶 How to improve Wi-Fi signal in Ubuntu?

Try:

  • 📡 Change the channel on the router (use sudo iwlist wlan0 scanning, to see the channel load).
  • 🔗 Use a USB extension cable for the external adapter (sometimes it helps to avoid interference).
  • 🔋 Disable power saving for your Wi-Fi adapter:
sudo iwconfig wlan0 power off

To disable permanently, create a file /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf with the line:

[connection]

wifi.powersave = 2