Working on a Linux operating system often requires a deeper understanding of networking processes than users familiar with Windows or macOS. One critical parameter for a stable connection is the received radio signal strength, which directly impacts data transfer speed and ping. Signal level may fluctuate due to physical obstructions, electromagnetic interference, or channel congestion from neighboring routers.
Unlike graphical interfaces, which often hide detailed technical parameters, the command line provides comprehensive information about the status of the wireless adapter. System administrators Advanced users prefer to use the terminal to instantly diagnose connection issues, as it provides the most accurate and up-to-date data in real time.
In this article, we'll explore various methods for obtaining connection quality information, from standard utilities to specialized monitoring tools. You'll learn how to interpret the resulting dBm and percentage values to effectively adjust antenna positions or select the optimal access point.
Basic Concepts: What is dBm and Why is it Important?
Before we dive into the commands, it's important to understand the units of measurement you'll encounter. Signal strength in IEEE 802.11 wireless networks is measured in dBm (decibel milliwatt). This is a logarithmic value that is always negative because it shows the ratio of signal power to 1 milliwatt.
The closer the value is to zero, the better the signal. For example, -40 dBm indicates an excellent signal when in close proximity to the router. -90 dBm indicates an extremely weak signal, at which point the connection may constantly drop or become unstable. Understanding this scale is critical for proper network diagnostics.
Signal strength is often also displayed as a percentage, but this method is less accurate and depends on the driver implementation of a specific wireless adapter. Professionals rely on dBm, as it's a universal standard that allows for comparison of readings from different devices.
⚠️ Attention: Values below -85 dBm often result in reduced connection speeds, as the WiFi protocol automatically switches to lower, more error-resistant modulation standards.
Using the iwlist utility for detailed analysis
One of the oldest and most proven tools in the Linux arsenal is the package wireless-tools, containing the utility iwlist. Despite the fact that it is considered obsolete in favor of iw, many distributions still support it, and it remains incredibly convenient for quickly scanning the air.
To get signal strength information, you first need to know the name of your wireless interface. This is usually wlan0, wlp2s0 or similar notation. The command to scan available networks and view signal strength looks like this:
sudo iwlist wlan0 scanning | grep -E"ESSID|Quality|Signal"
In the command output you will see the parameter Signal level, which represents the desired value in dBm. Also note the Quality field, which may be displayed as a fraction (e.g., 70/100), representing a relative assessment of the link's quality.
Why might iwlist not work?
The iwlist utility depends on older mac80211 drivers. In modern Linux kernels, many drivers have migrated to nl80211, where the iw command is preferred. If iwlist returns an error, try the iw dev wlan0 scan command.
A modern approach with the iw utility and nl80211
Modern Linux distributions such as Ubuntu 22.04+, Fedora or Arch use a stack nl80211 and utility iw for managing wireless devices. This tool provides a more structured output and is faster than its predecessors.
To view the connection status and signal strength for the current interface, use the command iw devIt will display a list of interfaces and their current status, including channel frequency and signal strength.
iw dev wlan0 link
In the output line signal You'll see the current power value. If you're in range of multiple access points and want to scan the airwaves, use the command iw dev wlan0 scan will provide a complete list of all visible networks with their security parameters and signal strength.
Monitoring via NetworkManager (nmcli)
In most desktop environments (GNOME, KDE, Cinnamon), the network management service is responsible for NetworkManagerIts console client nmcli allows you to get connection information without using sudo, which makes it convenient for ordinary users.
The command for displaying detailed connection information includes signal strength. To filter out unnecessary information and display only the relevant fields, you can use the following syntax:
nmcli -f ACTIVE,SIGNAL dev wifi
Here is a column SIGNAL Shows the power as a percentage. This is less accurate than dBm, but it gives a quick overview of connection quality. If you need to see data for a specific, active connection, use the command nmcli connection show --active and find the corresponding UUID or name.
Graphic tools and widgets
Not all users like the command line, and there are excellent graphical tools for them. Depending on your desktop environment, viewing methods may vary. In GNOME, you can install the "WiFi Signal Strength Indicator" extension, which displays the exact numeric value in dBm directly in the system tray.
There are desktop widgets for KDE Plasma that display the signal graph. There's also a cross-platform utility Wavemon (although it works in the terminal, it has a pseudo-graphical interface) provides visualization of the spectrum and a histogram of signal levels.
If you prefer native tools, click the network icon in the system tray and select "Network Settings" or "Connection Properties." Often, hidden under "Security" or "Details," you'll find the "Signal Strength" option. However, keep in mind that GUI interfaces may take a while to update data.
Data interpretation and table of values
Once you've received the numerical values, it's important to interpret them correctly. Below is a table to help you understand how good your signal is and what to expect from your connection.
| Signal level (dBm) | Quality | Expected performance |
|---|---|---|
| -30... -50 | Excellent | Maximum speed, stable ping, ideal for gaming and 4K. |
| -50... -65 | Good | High speed, rare micro-interruptions possible. |
| -65... -75 | Average | Web surfing works normally, 1080p video, speed drops are possible. |
| -75... -85 | Low | Basic surfing, possible connection drops, high ping. |
| -85... -90 | Critical | The connection is unstable, complete connection breaks are possible. |
Please note that at 5 GHz, signal attenuation is faster than at 2.4 GHz. Therefore, a -70 dBm reading on 5 GHz may be normal for a distant room, while at 2.4 GHz it is cause for concern.
Factors Affecting Signal Level
Why might the signal be weak even when located close to the router? There are many physical and technical factors. Electromagnetic interference from microwave ovens, baby monitors and Bluetooth devices have a significant impact on the 2.4 GHz band.
- 🧱 Wall materials: Concrete, brick and metal (reinforcement, foil insulation) almost completely block radio waves.
- 📡 Antenna orientation: Incorrect positioning of the router and receiver antennas can reduce communication efficiency by 50% or more.
- 📶 Channel load: If neighboring routers operate on the same frequency, collisions occur, which are perceived as noise.
To minimize the impact of these factors, it is recommended to use WiFi analyzers (for example, wavemon or graphical analogues) to find the least loaded channel and switch the router to it.
⚠️ Attention: Interfaces and menu names in graphical shells may vary depending on the Linux distribution version. If you can't find the setting you need, check the official documentation for your desktop environment.
FAQ: Frequently Asked Questions
Why does the iwlist command say "Interface doesn't support scanning"?
This means your wireless adapter driver doesn't support scanning via the older wireless-tools interface. Try using a modern utility. iw dev wlan0 scan or check if the interface is blocked by the command rfkill list.
Is it possible to increase the signal programmatically in Linux?
You can change the region (country code) programmatically, which sometimes allows you to use higher transmitter power, but this depends on the legislation of your country and the capabilities of the hardware. Command iw reg set allows you to change the region, but be careful with (compliance).
How do I know if I'm on 2.4 GHz or 5 GHz?
Use the command iw dev wlan0 link. In the line freq The frequency will be indicated in MHz. Values up to 2500 refer to 2.4 GHz, and values above 5000 refer to 5 GHz.
What to do if the signal constantly jumps?
Surges can be caused by background processes updating the network list or physical obstructions. Try disabling automatic scanning in NetworkManager settings or using directional antennas.