Switching to a Linux operating system is often a pleasant surprise for users who value speed and security, but it can be a bit of a bummer the first time you try to connect to the internet. Unlike Windows, where the process of connecting to a wireless network is highly automated and hidden from the user's view, in the open source world, you may have to be a little more hands-on. However, modern distributions like Ubuntu, Linux Mint, or Fedora are equipped with powerful tools that make it easy. Wi-Fi setup almost instantaneous.
If you've just installed the system and discovered there's no internet connection, don't panic. In most cases, the problem can be resolved with a couple of mouse clicks or a single command in the terminal. NetworkManager, the de facto standard for most desktop environments, takes care of all the complex work of airwave scanning and authorization. Your only task is to correctly specify the network parameters.
In this article, we'll cover all possible scenarios: from simply selecting a network in a graphical menu to manual configuration via the console for servers or systems without a graphical interface. We'll also cover common driver issues that can arise on laptops with the latest or, conversely, very old hardware.
Checking compatibility and availability of drivers
Before attempting to connect, you need to make sure the operating system "sees" your wireless adapter. Linux is renowned for its excellent hardware support out of the box, but proprietary Broadcom modules or some Realtek models may require separate firmware installation. Without the correct drivers the system won't even be able to start scanning for available access points.
For quick diagnostics, open the terminal and enter the command ip link or more detailed lspci | grep -i networkIf you see a line mentioning "Wireless" or "Wi-Fi" in the output, the physical device has been detected. The absence of entries may indicate that the adapter is disabled by hardware or has burned out, although most often this is a matter of missing firmware packages.
If the system reports that the device is found but isn't working, check the driver status. Some distributions, such as Ubuntu, have an "Additional Drivers" utility that will automatically find and offer to install missing components. For Arch Linux or Gentoo users, this process will require manually searching for packages in the repositories.
⚠️ Attention: If you're using a laptop with a hybrid graphics card or a specific Wi-Fi module, make sure the wireless adapter isn't disabled in the BIOS/UEFI. Sometimes power-saving settings can block the device from operating before the OS loads.
It's important to understand the difference between open-source and proprietary drivers. Open-source drivers are built directly into the Linux kernel and are updated along with it, ensuring stability. Proprietary drivers are often needed to maximize speed or support specific features, but they can break when the system kernel is updated.
Connection via graphical interface (GUI)
For most desktop Linux users, networking is handled through a graphical interface. In the GNOME, KDE Plasma, or XFCE desktop environments, network management is standardized and intuitive. Typically, an icon resembling a fan or globe appears in the system tray (notification area).
Clicking this icon will display a list of available networks. If the network you need isn't listed, it may be hidden, and you'll need to select "Connect to a hidden network." After selecting your access point, the system will prompt you for a password. If you're using a corporate network with security protocols such as WPA2-Enterprise, the interface will offer advanced settings for entering logins and certificates.
- 📶 Automatic connection: By default, the system remembers the network and connects to it automatically when it appears within range.
- 🔒 Security type: Make sure that the correct encryption type is selected (usually WPA/WPA2 Personal), although modern systems detect it themselves.
- ⚙️ IP settings: In the network properties, you can switch from automatic address acquisition (DHCP) to a static IP if your local infrastructure requires it.
In the KDE Plasma environment, settings can be more granular, allowing you to manage multiple connection profiles for different locations (home, office, cafe). GNOME, on the other hand, offers a minimalist approach, hiding complex settings, which is convenient for beginners but can sometimes make fine-tuning difficult.
If the graphical interface freezes or doesn't display the network, it doesn't mean Wi-Fi isn't working. Often, the problem lies with the network management applet itself, not the underlying components. In this case, it's best to switch to the command line.
Using the NetworkManager utility (nmcli)
The Linux command line is a powerful tool that gives you complete control over your network stack. nmcli (NetworkManager Command Line Interface) allows you to manage connections without a graphical shell, making it ideal for servers or remote administration via SSH. It is present in almost all modern distributions.
The first step should always be to enable the Wi-Fi adapter, as it may be disabled when the system boots. To do this, use the command nmcli radio wifi onAfter turning on the adapter, you need to scan the airspace to see available access points and their signal strength.
nmcli dev wifi list
In the command output, you'll see a column with the network name (SSID), security mode, and signal strength. Find your network in the list. If the network is hidden, it may appear as -- or require manual entry of a name. To connect, use the command, where you must specify the network name (SSID) and password.
nmcli dev wifi connect "Network_Name" password "Your_Password"
Please note that if the network name or password contains spaces, they must be enclosed in quotation marks. It is also important to maintain the case of the characters. After the command has successfully completed NetworkManager will create a connection profile and automatically activate it.
Profile management allows you to not only connect, but also delete old or unnecessary connections. For example, the command nmcli connection delete "Network_Name" will completely delete saved settings for the specified access point, which is useful when changing the router password or migrating to a new infrastructure.
Working in text mode with nmtui
If working with long commands in the terminal seems inconvenient to you, and there is no graphical interface (for example, in minimalist builds or on servers), the utility will come to the rescue nmtui (NetworkManager Text User Interface). It provides a pseudo-graphical menu controlled by navigation keys and does not require knowledge of the exact command syntax.
To run, simply enter nmtui in the terminal as superuser (using sudo). A window will open with several options. Select "Activate a connection" to search for networks or "Edit a connection" to set up static IP addresses.
In edit mode, you can manually enter the IP address, subnet mask, gateway, and DNS servers. This is especially useful for servers that don't use DHCP. The interface prompts you for the required fields, and navigation is accomplished using arrow keys and the Tab key to switch between buttons.
☑️ Checking the connection via nmtui
After making changes, remember to scroll down the menu and select "OK," then "Back" to exit. Changes are applied instantly, but if the connection was already active, you may need to reconnect. This is a reliable setup method that works even with a minimal set of packages installed.
Troubleshooting drivers and modules
When a Wi-Fi adapter isn't detected or is unstable, it's often due to a driver conflict or missing firmware. In Linux, the kernel may load the wrong module for your device, especially if it's a common Realtek or Broadcom chipset. Troubleshooting begins with checking the loaded kernel modules.
Team lsmod | grep wifi or lsmod | grep 80211 will show which wireless-related modules are active. If you see that a driver known to cause problems is loaded (for example, rtl8192cu instead of rtl8192eu), you can try to unload it with the command sudo modprobe -r module_name and download the correct one.
A common problem is power saving mode, which can "sleep" the adapter, causing it to stop responding. To disable this, you can create a configuration file. For example, for Intel adapters, a file is created /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf, where the parameter wifi.powersave the value 2 (disabled) is assigned.
| Problem | Possible cause | Solution |
|---|---|---|
| The adapter is not visible | Disabled in BIOS or RFKill | Check the BIOS with the rfkill list command. |
| Low speed | 802.11b/g mode instead of n/ac | Check your router settings and driver |
| Frequent breaks | Energy saving | Disable powersave in NM config |
| No encryption | Incorrect driver | Install firmware-linux-nonfree |
Also worth mentioning is the utility rfkill. It manages software and hardware locks of radio interfaces. If the command rfkill list shows the status "Soft blocked: yes", you can unblock Wi-Fi with the command rfkill unblock wifiThis often happens after an improper shutdown or in airplane mode.
Setting up static IP and DNS
Home networks typically use dynamic address assignment (DHCP), but corporate environments or servers often require a static IP address. This ensures that the device's address doesn't change after a reboot, which is important for port forwarding or SSH access. Configuration is accomplished by editing the connection profile.
IN nmcli This is done through the command nmcli connection modify. You need to specify the ipv4.method manual, address, gateway and DNS. For example: nmcli con mod "Home-Wifi" ipv4.addresses 192.168.1.50/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 1.1.1.1"After changing the parameters, you must restart the connection.
⚠️ Attention: Make sure the selected static IP address is outside the range assigned by your DHCP server (router). Otherwise, an address conflict will occur, and one of the devices will lose network access.
Using public DNS servers, such as Google (8.8.8.8) or Cloudflare (1.1.1.1), often speeds up website loading and bypasses ISP blocking. On Linux, this is easily configured and applies globally to the entire connection, not to individual applications.
How to reset all network settings?
If you're confused about the configuration, you can delete all connection profiles using the nmcli connection delete "Name" command and then recreate them. This will restore the network management settings to factory defaults.
After making changes to the IP address configuration, it is useful to run the command ip addrto ensure the new settings have been applied correctly. If the address is not assigned, check the command syntax or try reconnecting the interface.
Frequently Asked Questions (FAQ)
Why doesn't Linux see my Wi-Fi adapter?
Most likely, the problem is a lack of proprietary drivers or firmware. Check the adapter model via lspci and search for the corresponding package in your distribution's repositories. Also, make sure the adapter isn't blocked by the command rfkill.
How to connect a laptop to a hidden Wi-Fi network?
In the GUI, select "Connect to a hidden network" and enter the exact name (SSID) and password. In the terminal, use the command nmcli con add type wifi ifname wlan0 con-name "Hidden" ssid "Network_Name" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "Password".
Is it possible to share Wi-Fi from a Linux laptop?
Yes, most modern distributions allow you to create a hotspot directly from the network settings. This turns your laptop into a router, distributing internet access via an Ethernet cable or other Wi-Fi adapter.
Where are Wi-Fi passwords stored in Linux?
Passwords are stored encrypted in NetworkManager configuration files, usually at the path /etc/NetworkManager/system-connections/To view the contents of these files, you need superuser (root) rights.
What to do if Wi-Fi is slow?
Try changing the channel on your router to a less congested one, disabling adapter power saving in Linux, and checking if it switches to the 802.11b/g standard. Updating your system kernel might also help.