Connecting Linux to Wi-Fi is usually as simple as clicking a network icon and entering a password. When it is not, Linux offers enough diagnostic tools to make you feel like a network engineer before breakfast.
This guide explains how to connect to Wi-Fi in Linux through a graphical desktop, the nmcli command, the text-based nmtui interface, and iwctl. It also covers hidden networks, enterprise Wi-Fi, saved connection profiles, and the most common wireless problems.
How Wi-Fi Connections Work in Linux
A Linux Wi-Fi connection involves several layers working together. The kernel and device driver communicate with the wireless adapter. A networking service, usually NetworkManager or iwd, scans for access points and handles authentication. DHCP then requests an IP address, gateway, and DNS configuration from the router.
This matters because “Wi-Fi is broken” can describe several different problems. Your adapter may be disabled, the driver may be missing, authentication may be failing, or the computer may be connected to the router without receiving working internet access.
For most users, NetworkManager handles these details automatically. You interact with it through the desktop Wi-Fi menu, nmcli, or nmtui.
Check Your Wi-Fi Hardware Before Connecting
Start by confirming that Linux recognizes a wireless interface:
Look for a device with the type wifi. Its name may resemble wlan0, wlp2s0, or wlo1. Modern Linux systems frequently use predictable interface names, so do not panic when wlan0 has apparently changed its identity.
You can also inspect all network interfaces:
If no wireless interface appears, identify the hardware:
The first command is useful for internal PCIe adapters, while lsusb helps identify USB Wi-Fi adapters. A missing interface often points to an unavailable driver, missing firmware, a disabled radio, or unsupported hardware.
Method 1: Connect to Wi-Fi Through the Linux Desktop
The graphical method is the easiest Linux Wi-Fi setup for desktops and laptops running GNOME, KDE Plasma, Cinnamon, Xfce, or a similar environment.
Connect in GNOME, Ubuntu, or Fedora Workstation
- Open the system menu in the top-right corner.
- Select Wi-Fi or Wi-Fi Settings.
- Turn Wi-Fi on if it is disabled.
- Select your network name, also called the SSID.
- Enter the wireless password and click Connect.
Connect in KDE Plasma or Linux Mint
- Click the network icon in the system tray.
- Enable Wi-Fi if necessary.
- Choose the desired wireless network.
- Enter the password and select Connect.
Linux normally saves the connection profile and reconnects automatically when the network is available. You can open the network’s settings to change its password, DNS servers, IP configuration, or automatic-connection behavior.
Method 2: Connect to Wi-Fi with nmcli
nmcli is NetworkManager’s command-line client. It is useful on minimal systems, remote machines, lightweight desktops, and those days when the graphical menu decides it needs a vacation.
Step 1: Check NetworkManager
If networking or Wi-Fi is disabled, turn it on:
Step 2: Scan for Wireless Networks
The output shows available SSIDs, signal strength, channel, data rate, and security type. An asterisk in the IN-USE column identifies the current connection.
Step 3: Connect to the Network
Replace Home Network with your SSID. Quotation marks are important when the network name contains spaces. The --ask option prompts for the password without placing it directly in your shell history.
You can supply the password in the command, although this is less private:
When multiple wireless adapters are installed, specify one:
Manage Saved Wi-Fi Profiles
List saved and active connections:
Reconnect to a saved profile:
Forget an old network:
To make a profile connect automatically, use:
Method 3: Connect with nmtui
nmtui provides a menu-driven NetworkManager interface inside the terminal. It is friendlier than remembering commands and works well on systems without a full desktop.
Select Activate a connection, highlight the desired Wi-Fi network, and press Enter. Enter the password when prompted. Use the arrow keys to move, the spacebar to select options, and Esc to return to the previous screen.
You can also choose Edit a connection to configure static addresses, DNS servers, routes, or automatic connection settings.
Method 4: Connect to Wi-Fi with iwctl
Systems that use the iNet wireless daemon, known as iwd, can connect through iwctl. This is common during an Arch Linux installation and on customized lightweight systems.
Start the interactive utility:
At the [iwd]# prompt, list devices, scan, and connect:
Replace wlan0 with the wireless device shown by device list. Enter the passphrase when requested, and type exit when finished.
A noninteractive connection is also possible:
Avoid running several competing network managers on the same interface. NetworkManager, standalone iwd, and manually launched wpa_supplicant should not all wrestle for control like three people reaching for the last slice of pizza.
Connect to Hidden, Enterprise, and Static-IP Networks
Hidden Wi-Fi Network
A hidden network does not broadcast its SSID. In a desktop environment, choose the option to connect to a hidden network and enter the exact SSID, security type, and password.
With NetworkManager, try:
Enterprise Wi-Fi
School and workplace networks may use WPA2-Enterprise or WPA3-Enterprise authentication. These connections can require a username, password, EAP method, anonymous identity, certificate, and domain information.
Use the values supplied by the organization’s IT department. Do not disable certificate validation merely to make the warning disappear; that can expose credentials to an impersonated access point.
Static IP Address
Most home networks use DHCP. When a static address is required, modify the saved profile rather than manually changing the interface every time:
Use addresses appropriate for your network. Copying random IP settings from the internet is an excellent way to create a very organized-looking failure.
How to Fix Wi-Fi Not Working in Linux
1. Check Whether Wi-Fi Is Blocked
If Wi-Fi is soft-blocked, unblock it:
A hard block usually means a physical switch, keyboard shortcut, firmware setting, or airplane-mode control has disabled the adapter.
2. Restart NetworkManager
This can recover from a stuck scan or failed connection attempt. On an iwd-only system, restart iwd instead.
3. Rescan for the Network
If your SSID remains missing, move closer to the router, confirm that the router is broadcasting, and check whether the adapter supports the router’s frequency band. Some older adapters cannot use 5 GHz or newer 6 GHz networks.
4. Remove a Broken Saved Profile
An old password or incompatible security setting can become trapped in a saved profile:
5. Separate Wi-Fi Problems from Internet Problems
First, check whether the interface received an address:
Then test an external IP address:
If that works, test a domain name:
If the IP address responds but the domain does not, the wireless link is working and DNS is the likely problem. Systems using systemd-resolved can display resolver information with:
6. Check for a Captive Portal
Hotel, airport, café, and campus networks may connect successfully but require a browser login. Open a regular, non-sensitive website and look for the portal page. Disable a VPN temporarily if it prevents redirection, then reconnect the VPN after completing the login.
7. Inspect Driver and Firmware Messages
Messages about missing firmware, initialization failures, or repeated disconnections can identify the real issue. Install firmware and driver packages from your distribution’s official repositories whenever possible.
8. Reboot the Router and Computer
Rebooting is not glamorous, but neither is arguing with a router that has quietly stopped assigning addresses. Restart the router, wait for it to finish booting, and then restart the Linux computer if the problem continues.
Linux Wi-Fi Security and Reliability Tips
- Prefer WPA2 or WPA3 instead of open, WEP, or older WPA-only networks.
- Use a strong router passphrase that is not reused for other accounts.
- Install distribution updates, including kernel, driver, and firmware fixes.
- Forget public networks that you no longer use.
- Use a trusted VPN on public Wi-Fi when appropriate.
- Avoid entering credentials when certificate warnings appear unexpectedly.
Remember that strong Wi-Fi signal bars only describe the link between your computer and the access point. They do not guarantee a fast internet connection. The router’s broadband connection may still be slow, overloaded, or unavailable.
Practical Experiences from Real-World Linux Wi-Fi Setups
Linux Wi-Fi problems often look mysterious at first, but recurring patterns make them easier to solve. The most useful habit is to determine which layer has failed instead of repeatedly typing the password and hoping the computer admires your persistence.
The “No Wi-Fi Option” Experience
A common scenario begins immediately after installing Linux: the desktop has no Wi-Fi menu, and nmcli device status shows only Ethernet and loopback devices. This usually is not a password problem because Linux has not created a usable wireless interface.
Checking lspci -k, lsusb, and the kernel log often reveals a missing firmware file or an adapter that needs an additional driver package. Connecting temporarily through Ethernet or USB phone tethering provides enough internet access to install the correct firmware. Once the driver loads, the Wi-Fi menu frequently appears without additional configuration.
The Saved Password That Refuses to Die
Another familiar experience occurs after changing the router password. Linux keeps trying the old credentials stored in its NetworkManager profile, and the connection fails almost instantly. Editing the saved profile may work, but deleting it and reconnecting is often faster:
This creates a fresh profile and removes obsolete authentication settings. It is the networking equivalent of replacing a suspicious leftover container instead of opening it and attempting forensic analysis.
Connected to Wi-Fi but Not the Internet
This situation causes the most confusion because the network icon looks healthy. The computer may have authenticated with the router but failed to receive an IP address, default route, or usable DNS configuration.
The quickest diagnosis is to inspect ip address and ip route, then ping an external IP address and a domain name. If neither works, the problem may involve DHCP, routing, the router, or the upstream internet service. If an IP address works but a hostname does not, investigating DNS saves considerable time.
The Dual-Band Router Surprise
Older laptops and inexpensive USB adapters may see a 2.4 GHz network but not its 5 GHz or 6 GHz counterpart. In other cases, a regulatory-domain or driver limitation prevents certain channels from appearing. Testing the 2.4 GHz SSID provides a useful comparison.
When 2.4 GHz works reliably but a higher band does not, the issue is more likely related to adapter capabilities, router channel selection, signal range, or driver support than to the Wi-Fi password.
The Public Wi-Fi Illusion
Public access points can report a successful connection while blocking normal traffic until the user accepts terms or enters a room number, email address, or access code. Because modern browsers prefer encrypted HTTPS pages, the login portal may not appear automatically.
Opening an ordinary webpage, temporarily pausing a VPN, and checking for a captive-portal notification usually exposes the missing login step. After authentication, the VPN can be re-enabled.
The Best Troubleshooting Lesson
The most reliable workflow is simple: confirm the adapter exists, check that it is not blocked, verify that the network is visible, recreate the connection profile, inspect the assigned address and route, and finally test DNS. This sequence turns “Linux hates my Wi-Fi” into a much smaller and more useful question.
It also prevents unnecessary changes. Reinstalling drivers will not fix a mistyped password, and changing DNS servers will not revive a radio disabled by a hardware switch. Diagnose first, modify second, celebrate third.




