If your Ubuntu system refuses to connect to Wi-Fi, you’re not alone. Wireless issues are one of the most common frustrations we Linux users face. If your Wi-Fi isn’t showing up, keeps disconnecting, or won’t connect, there are several ways to troubleshoot and fix the problem.
These aren’t the only possible solutions for Ubuntu Wi-Fi problems, but they are a great starting point. If nothing else works, you may need to dig deeper into hardware compatibility, kernel updates, or advanced troubleshooting.
Check If Ubuntu Recognizes Your Wi-Fi Adapter
Before adjusting network settings or installing drivers, check whether Ubuntu detects your hardware. If you’re using a built-in wireless card, open a terminal and run:
lshw -C network
For USB Wi-Fi adapters, check if Ubuntu detects the device by running:
lsusb
If your adapter appears in the list but isn’t working, the issue is likely driver-related. If it doesn’t show up, Ubuntu may not recognize the hardware. For USB adapters, unplug and re-plug, trying different USB ports. For internal cards (PCIe, etc.), power off your computer, carefully open the case (if comfortable), and ensure the card is firmly seated in its slot.
Restart Network Services
Restarting the NetworkManager service can resolve many connectivity issues. Open a terminal and run:
sudo systemctl restart NetworkManager
Once the service restarts, try connecting to Wi-Fi again. If the issue persists, restart your system to apply the changes.
Install Missing Wi-Fi Drivers
If Ubuntu isn’t detecting your internal Wi-Fi card or external adapter, installing the correct drivers might fix the issue. Check for available drivers by running:
ubuntu-drivers devices
If a driver is listed, install it using:
sudo apt install firmware-b43-installer
This command is for Broadcom adapters, but other Wi-Fi cards may require different packages. If you’re using a USB Wi-Fi adapter, search for your adapter model along with “Ubuntu driver” to find the correct installation steps. Some USB adapters require third-party drivers that need to be installed manually.
For example, if your USB adapter uses a Realtek chipset, you might need to install additional drivers with:
sudo apt install rtl8821ce-dkms
If Ubuntu still doesn’t recognize your adapter after installing drivers, unplug it and plug it back in, or restart your system.
Make Sure Wi-Fi Isn’t Blocked
Ubuntu includes a tool called rfkill, which can block and unblock wireless devices at the software (soft block) or hardware (hard block) level. To check if Wi-Fi is disabled, run:
rfkill list
If the output shows “soft blocked” or “hard blocked,” the system is preventing the adapter from working. Unblock it by running:
sudo rfkill unblock wifi
If the Wi-Fi toggle in your system settings is still grayed out, restart your computer to apply the change.
Fix Missing or Hidden Wi-Fi Networks
If your Wi-Fi network isn’t showing up, check that the adapter is enabled and scanning properly. Running:
nmcli radio wifi
This will confirm whether Wi-Fi is enabled. If it’s off, turn it back on with:
nmcli radio wifi on
For USB adapters, unplugging the device and plugging it back in can force Ubuntu to rescan for networks. If your network still isn’t appearing, restart your router or move closer to rule out signal strength issues.
Fix Slow Wi-Fi or Frequent Disconnections
If your Wi-Fi is slow or keeps dropping, switching DNS servers can help.
To change DNS settings for a specific Wi-Fi connection, open Settings, go to Wi-Fi, and click the gear icon next to your connected network. Switch to the IPv4 tab, disable “Automatic” under DNS, and enter 8.8.8.8, 8.8.4.4 for Google DNS or 1.1.1.1, 1.0.0.1 for Cloudflare’s DNS. Click Save, then disconnect and reconnect to apply the changes.
For a system-wide DNS change, open the systemd-resolved configuration file in Vim:
sudo vim /etc/systemd/resolved.conf
Scroll down to the [Resolve] section. You should see a section that looks like this:
By default, the DNS= and FallbackDNS= lines are commented out with #, meaning they are inactive.
Uncomment the lines by removing the # at the beginning of each.
Enter the preferred DNS servers. For example, to use Google DNS and Cloudflare DNS, modify the lines like this:
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 1.0.0.1
Save and exit Vim by pressing Esc, typing :wq, and hitting Enter. Restart systemd-resolved to apply the changes:
sudo systemctl restart systemd-resolved
Verify the new DNS settings:
resolvectl status
After making these changes, Ubuntu will consistently use your custom DNS settings.

Related
Reset Network Settings
If none of these fixes work, resetting Ubuntu’s network settings might help. Removing old network configurations and restarting the NetworkManager service can resolve persistent connectivity issues. Run:
sudo rm /etc/NetworkManager/system-connections/*
sudo systemctl restart NetworkManager
This command removes all saved network configurations, so you’ll need to reconnect to Wi-Fi and enter the password again.
Wi-Fi issues on Ubuntu can be frustrating, but most problems have a fix. If your built-in Wi-Fi card or USB adapter isn’t recognized, installing the correct drivers should get it working. If Wi-Fi is blocked or not showing up, restarting services or unblocking it through the terminal can help. Slow speeds and connection drops can often be resolved by switching DNS servers. With a few troubleshooting steps, you should be able to get your Ubuntu system back online.