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 aand 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 support802.11b/g).
⚠️ 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,
b43For 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:
- Open
Programs and Updates → Additional Drivers. - Select the recommended driver for your adapter and click
Apply changes. - 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 dkmsgit 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:
- Make sure the services are running:
sudo systemctl status NetworkManager
sudo systemctl status wpa_supplicant
- 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:
- 🔌
NetworkManagerdoes 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
netplanorsystemd-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 supportsWPA2. - 🔑 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:
- 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.
- 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:
- 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
wicdorconnman, they may conflict withNetworkManager.
How to diagnose:
- Check your firewall status:
sudo ufw status
If it is active, temporarily disable it:
sudo ufw disable
- View active VPN connections:
ip a | grep tun
If there are interfaces like tun0 or wg0, turn off the VPN.
- 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:
Attention: After this, you will have to reconfigure all connections, including the wired network!sudo rm /etc/NetworkManager/system-connections/*sudo rm /etc/netplan/*
sudo apt purge network-manager
sudo apt install network-manager
sudo systemctl restart NetworkManager
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):
- Open connection settings:
nm-connection-editor
- Select your Wi-Fi connection and go to
IPv4 settings. - Set method
Manualand 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) or1.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:
- Check if the adapter is detected in the system:
dmesg | grep -i wifi
Look for errors like firmware missing or failed to load.
- 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.
- 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:
- View the list of installed kernels:
dpkg --list | grep linux-image
- Remove the problematic kernel (eg.
5.15.0-76):
sudo apt remove linux-image-5.15.0-76-generic
- 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/ppasudo 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:
- The password is correct (case-sensitive characters matter!).
- Router encryption type (try changing
WPA3onWPA2). - 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:
- Has the IP address been received (
ip a show wlan0). If not -sudo dhclient wlan0. - Is DNS working? (
ping 8.8.8.8Andping google.com). If the first one works, but the second one doesn't, enter the DNS manually. - Are there any firewall blocks? (
sudo ufw disablefor 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:
- Install
ndiswrapper:
sudo apt install ndiswrapper-common ndiswrapper-utils
- Download the driver for Windows (
.infAnd.sysfiles). - Install the driver:
sudo ndiswrapper -i driver.infsudo 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