How to Connect to WiFi in Arch Linux: From Beginner to Pro

Installing the operating system Arch Linux This often becomes a challenge for the user, especially when, after a successful installation, the wireless adapter is found to be unactivated. Unlike distributions with an out-of-the-box graphical interface, you have to manually select and configure a network connection management tool. This may seem complicated, but this approach gives you complete control over the system configuration.

Modern methods of connection to wireless network Options in Arch Linux range from manual control via command-line utilities to advanced daemons that automatically handle roaming and encryption. The choice of a specific tool depends on your preferences: whether you need minimalism or a comfortable graphical interface. In any case, the foundation remains the same: the Linux kernel and a set of drivers.

Before entering commands, make sure your physical hardware is working properly and turned on. Laptops often have software-based Wi-Fi blocking via keyboard shortcuts, which can be confusing even for experienced administrators. We'll cover every step, from checking for the adapter to setting up automatic connection upon system boot.

Checking hardware and installing drivers

The first step should always be to diagnose the available hardware. The system must "see" your network adapter before it can be used. This is done using a utility. lspci for internal cards or lsusb For external USB dongles. If the command output doesn't mention a wireless or network controller, the issue may be at the BIOS or physical connection level.

⚠️ Attention: If your adapter is not detected in lspci, check if it's blocked in the BIOS/UEFI or by a physical button on the laptop case. Also, some new models require loading proprietary firmware files.

Once the device is detected, you need to ensure that the appropriate microcode packages are installed. In Arch Linux, these are often separated into separate packages, the names of which depend on the chipset manufacturer. For example, for Intel, this package is linux-firmware, and some Realtek cards may require additional packages from the AUR or official repositories.

To manage the state of the radio module in the system, a utility is used rfkillIt allows you to programmatically enable and disable wireless interfaces and diagnose blockages. It often happens that the driver is loaded, but the interface is in a "soft blocked" state, preventing network scanning.

rfkill list all

sudo rfkill unblock wifi

Executing the unblock command is a critical step. Without it, any further attempts to establish a connection will fail, as the kernel will ignore Ether scan requests. After unblocking, the status should change to "no" in the block column.

Choosing a Network Management Tool

In the Linux world, there are many ways to manage WiFi connections, and Arch Linux is no exception. The choice depends on how complex your infrastructure is and how comfortable you are with the command line. The main players here are NetworkManager, systemd-networkd With iwd or wpa_supplicant, And ConnMan.

NetworkManager is the most popular choice for desktop environments. It has a powerful backend, supports numerous plugins, and offers excellent graphical interfaces. If you use GNOME, KDE Plasma, or XFCE, this option will be the most native and easy to configure via the menu.

On the other side, systemd-networkd in conjunction with iwd (Intel Wireless Daemon) is a modern, lightweight solution. It's fully integrated into systemd, has no unnecessary dependencies, and runs very fast. It's an ideal choice for minimalist builds or servers where resource conservation is essential.

  • 📡 NetworkManager — a universal solution with GUI, VPN and complex routing support.
  • 🚀 iwd + systemd-networkd — a modern, fast stack that replaces the outdated wpa_supplicant.
  • 🛠 wpa_supplicant — a classic, time-tested daemon that requires manual configuration.
  • 📶 ConnMan — a lightweight manager often used in embedded systems and minimalist distributions.
📊 Which network management tool do you prefer?
NetworkManager (GUI + CLI)
iwd + systemd-networkd
wpa_supplicant (manual configuration)
ConnMan
Other

It's important to understand that using multiple managers simultaneously on a single interface can lead to conflicts. If you decide to use NetworkManager, make sure other services, such as systemd-networkd, do not attempt to control the same device. In Arch Linux, this is resolved by properly enabling and masking the appropriate systemd services.

Setting up WiFi via NetworkManager

NetworkManager is the de facto standard for most users of desktop versions of Arch Linux. It's easy to install and can be managed via the command line using a utility. nmtui (text interface) or nmcli, and through graphical applets. To get started, you need to install packages networkmanager and, if necessary, network-manager-applet.

sudo pacman -S networkmanager network-manager-applet

After installation, you need to enable the service. Unlike some other distributions, services are not enabled automatically in Arch Linux. You need to enable the main daemon and, optionally, the network wait service so that the system waits for a connection before loading network services.

sudo systemctl enable --now NetworkManager.service

sudo systemctl enable --now NetworkManager-wait-online.service

To connect to the network in text mode, run nmtuiThis will open a pseudo-graphical menu where you can select "Activate a connection," find your network from the list, and enter the password. The system will automatically create a connection profile and save the credentials in encrypted form.

☑️ NetworkManager Setup Checklist

Completed: 0 / 5

If you prefer (CLI), the utility nmcli provides a powerful toolkit. It allows you to create complex configurations, manage VPNs, and even change the MAC address to enhance privacy. The connection command is simple, but requires knowledge of the device's exact name.

⚠️ Caution: When using nmcli Passwords can be stored in cleartext in configuration files if a keyring agent isn't configured. In graphical environments (GNOME Keyring, KWallet), this is handled automatically, but in pure WMs (i3, Sway), an additional setting is required.

Using iwd and systemd-networkd

For those who strive for maximum performance and minimalism, the bundle iwd And systemd-networkd is an excellent alternative to the heavyweight NetworkManager. iwd (formerly known as iwlwifi) is being developed by Intel and is intended to replace the old wpa_supplicantIt works faster and has a simpler API.

To get started, install the packages iwd and make sure that wpa_supplicant does not conflict. Configuration iwd stored in /etc/iwd/main.conf, where you can configure scanning and automatic connection behavior. After installation, you need to enable the corresponding services.

sudo pacman -S iwd

sudo systemctl enable --now iwd.service

sudo systemctl enable --now systemd-networkd.service

Connection to the network is carried out through the utility iwctlThis is an interactive console, reminiscent of the good old days of DOS, but with powerful functionality. Within the shell, you can scan networks, connect to them, and save profiles. Passwords can be entered directly into the command or entered interactively.

iwctl

[iwd]# station wlan0 scan

[iwd]# station wlan0 get-networks

[iwd]# station wlan0 connect MyWiFi

After successfully connecting at the link level, you need to configure the acquisition of an IP address. To do this, create a configuration file. /etc/systemd/network/20-wireless.networkIt specifies that DHCP should be used for this interface. This divides responsibility: iwd is engaged in WiFi connection, and systemd-networkd — IP addressing.

Configuring systemd-networkd for WiFi

In the /etc/systemd/network/20-wireless.network file, add the [Match] section with Name= wlan0 and the [Network] section with DHCP=yes. This will allow the system to automatically obtain an IP address after successful authentication via iwd.

Troubleshooting driver and connection issues

Even with properly configured software, hardware can be erratic. A common issue in Arch Linux is the lack of firmware for broadband cards, especially Broadcom and some Realtek models. Symptoms include the interface being created, but scanning failing to find any networks or returning an "Operation not permitted" error.

For diagnostics use the command dmesg | grep firmware or dmesg | grep wlanThe Linux kernel will honestly tell you if it's missing a specific firmware file. Firmware packages in Arch are usually called linux-firmware, but specific hardware may require packages like rtl88xxau-dkms-git from AUR.

Problem Possible cause Solution
The interface does not start Disabled in rfkill rfkill unblock wifi
No networks found while scanning Missing firmware Check dmesg, install linux-firmware
Authorization error Incorrect password or encryption type Check the keyboard layout, reset the network profile
Unstable connection Power saving mode Disable NetworkManager or iwd in the config

Another common problem is aggressive power saving by the WiFi card, especially on laptops. The card may shut down to save power and take a long time to wake up, creating lag. This can be disabled by adding the appropriate option to the network manager configuration or by creating a udev rule.

Automation and connection security

Once the connection is established, it's important to ensure its stability and security. In today's environment, using open WiFi networks without additional security is risky. Arch Linux provides tools for setting up static IP addresses, DNS, and routes if DHCP isn't an option.

For enhanced security, we recommend using WPA3 if your router and adapter support it. It's also worth considering setting a random MAC address when scanning and connecting, which protects your privacy in public places. In NetworkManager, this can be configured in the connection profile using the parameter wifi.mac-address-randomization.

Don't forget that the configuration files in /etc — this is the heart of your system. Make regular backups of running configurations. Arch Linux doesn't have a "restore point" like Windows, so being able to quickly restore the network by editing a text file is a survival skill.

⚠️ Attention: When updating the system (pacman -Syu) configuration files can be replaced with new versions with the extension .pacnewAlways check for the presence of such files after updates to avoid losing network settings.

The final touch can be setting up scripts that will notify you about network status or automatically switch DNS depending on the connected network. Scriptability is one of Linux's greatest strengths, allowing you to adapt the system to any, even the most exotic, requirements.

What should I do if WiFi disappears after a kernel update?

It often happens that the new Linux kernel doesn't yet contain modules for your proprietary driver, or DKMS hasn't had time to rebuild the module. In this case, boot from the previous kernel via the bootloader (GRUB/systemd-boot), wait for the DKMS modules to be updated or a compatible driver to be released, and only then reboot into the new kernel.

How to connect a hidden network (Hidden SSID)?

Hidden networks do not broadcast their identifier. nmtui When creating a new connection, you must manually enter the network name (SSID) and select the security type. nmcli use the flag hidden yes when establishing a connection. Remember that hiding the SSID is not a security measure, but rather an inconvenience for users.

Where are WiFi passwords stored in Arch Linux?

In NetworkManager, connections are stored in /etc/NetworkManager/system-connections/The files are protected by root access rights. Passwords inside can be encrypted or stored in cleartext, depending on the key agent settings. In iwd, the profiles are stored in /var/lib/iwd/.