Ever wondered why your internet connection feels sluggish or drops unexpectedly on your Linux machine? A weak WiFi signal might be the culprit. Fortunately, Linux offers many straightforward ways to measure your wireless network connection's signal strength right from the command line. In this guide, we'll discuss about a few methods to check WiFi signal strength in Linux with examples.
Table of Contents
Check WiFi Signal Strength from Commandline in Linux
To check your WiFi signal strength from the command line in Linux, you can use various tools depending on your distribution and the desktop environment you are using. Here I have given 5 methods.
1. Display WiFi Signal Strength using nmcli
Command
nmcli
is a command-line client for NetworkManager and is more modern and versatile. The nmcli
command also allows you to see the signal strength for all nearby networks, which can be useful for troubleshooting or assessing the quality of your current connection compared to others.
To display your WiFi signal strength using nmcli
, open a terminal and run the following command:
nmcli dev wifi
You will see a list of available WiFi networks along with their signal strength (in percentage). Your currently connected network will be highlighted with an asterisk symbol:
IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY
xx:xx:xx:xx:xx:xx My_Wifi_jio_4g Infra 1 130 Mbit/s 100 ▂▄▆█ WPA2
* xx:xx:xx:xx:xx:xx My_Wifi_jio_5g Infra 36 270 Mbit/s 92 ▂▄▆█ WPA2
Look for the SIGNAL
column, which shows the signal strength as a percentage. A higher percentage indicates a stronger signal.
2. Find WiFi Signal Strength using iw
Command
iw
is a newer, more powerful tool for configuring wireless devices.
Open a Terminal and run the following command with sudo privilege:
sudo iw dev
This will list the available wireless interfaces. Identify and pick your wireless interface (e.g., wlo1
).
phy#0 Unnamed/non-netdev interface wdev 0x2 addr xx:xx:xx:xx:xx:xx type P2P-device Interface wlo1 ifindex 3 wdev 0x1 addr xx:xx:xx:xx:xx:xx ssid My_Wifi_jio_5g type managed channel 36 (5180 MHz), width: 80 MHz, center1: 5210 MHz txpower 20.00 dBm multicast TXQ: qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets 0 0 0 0 0 0 0 0 0
And then, run the following command to get the signal strength:
sudo iw dev wlo1 link
Look for the signal
field, which indicates the signal strength in dBm (decibels relative to a milliwatt).
Connected to xx:xx:xx:xx:xx:xx (on wlo1) SSID: My_Wifi_jio_5g freq: 5180 RX: 9187127 bytes (8331 packets) TX: 1017084 bytes (5624 packets) signal: -29 dBm rx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2 tx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2 bss flags: short-slot-time dtim period: 2 beacon int: 100
As you see in the output above, my Wifi signal is -29 dBM. A value closer to 0 means a stronger signal (e.g., -29 dBm
is better than -39 dBm
).
3. View WiFi Signal Strength Level using iwconfig
Command
iwconfig
is part of the wireless-tools
package. It displays various parameters of your wireless connection, including signal strength.
Open a terminal and run iwconfig
command with sudo privilege:
sudo iwconfig
Look for the interface associated with your WiFi connection, usually named wlan0
, wlp2s0
, or similar. You will see something like this:
wlan0 IEEE 802.11 ESSID:"your-network-name" Mode:Managed Frequency:2.437 GHz Access Point: XX:XX:XX:XX:XX:XX Bit Rate=72.2 Mb/s Tx-Power=20 dBm Retry short long Limit:7 RTS thr:off Fragment thr:off Power Management:on Link Quality=70/70 Signal level=-40 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:20 Missed beacon:0
Look for the Link Quality and Signal level values.
- Link Quality: This shows the quality of the connection. A value like
70/70
indicates excellent signal quality. - Signal level: This shows the strength of the signal, usually in dBm (decibels relative to a milliwatt). A value closer to 0 means a stronger signal (e.g.,
-40 dBm
is better than-70 dBm
).
4. Find WiFi Signal Strength using iwlist Command
iwlist
is another tool available in the wireless-tools
package that provides detailed information about wireless network interfaces and their associated networks.
Open a terminal and run the following command with sudo
permission:
sudo iwlist <interface> scanning
This will show you a detailed information about the given wireless network interface. Look for the Signal Level value. This should be your Wifi connection's signal strength.
If you want to filter the signal level from the output, you can use grep
command like below:
sudo iwlist <interface> scanning | grep -i --color signal
Replace <interface>
with your WiFi interface name (e.g., wlan0
, wlp2s0
, etc.). You can find your interface name using the iwconfig
or nmcli dev status
command.
For example, if your interface is wlan0
, the command would be:
sudo iwlist wlan0 scanning | grep -i --color signal
Here is What this command does:
iwlist wlan0 scanning
: Scans all available WiFi networks within range of the interface (wlan0
in this example).grep -i --color signal
: Filters the output to display only the lines that contain the signal strength information, and highlights the word "signal" in color.
Sample Output:
Signal level=-45 dBm Signal level=-70 dBm Signal level=-60 dBm
- Signal level: Shows the signal strength in dBm (decibels relative to a milliwatt). As with
iwconfig
, a value closer to 0 is stronger (e.g.,-45 dBm
is stronger than-70 dBm
).
5. Display Wireless Network Connection Signal Strength with wavemon
wavemon
is a ncurses-based monitoring application for wireless network devices.
Install wavemon
if it's not already installed:
sudo apt install wavemon # For Debian/Ubuntu sudo dnf install wavemon # For Fedora/RHEL
Once installed, run wavemon
command:
wavemon
This will open an interactive interface showing various details about your wireless connection, including signal strength.
We have already published a dedicated tutorial about Wavemon in our blog. Please check the following link to know more about Wavemon:
These methods should help you check your WiFi signal strength from the command line in Linux. Choose the one that best fits your needs and environment.
Which Command line Tool is Best for Checking WiFi Signal Strength in Linux
In this tutorial, we have discussed 5 different command line tools to check the signal strength of a Wifi network connection in Linux. Each of these tools has its strengths, and my preference depends on the context in which you need to check WiFi signal strength:
nmcli
: I prefer this tool for quick and straightforward checks. It integrates well with NetworkManager, offers a clean output, and is easy to use for both beginners and experienced users. The output is in a human-readable format, making it ideal for quick assessments of the WiFi environment.iw
: I favoriw
when I need more detailed and flexible control over wireless interfaces. It's powerful and supports modern WiFi standards. For scripting or advanced diagnostics,iw
is excellent.wavemon
: I preferwavemon
when I need a real-time, interactive view of WiFi signal strength and other wireless parameters. It provides a visual interface in the terminal, which is helpful when monitoring signal fluctuations or troubleshooting connectivity issues.iwconfig
andiwlist
: While these are useful for basic checks, I consider them somewhat outdated compared tonmcli
andiw
. I use them when working on older systems or when I need simple, straightforward information quickly.
For general use, nmcli
is my go-to for its simplicity and integration with NetworkManager. For more detailed or interactive monitoring, I lean towards iw
or wavemon
.
My Personal Recommendation
Among all the tools, my preferred tool for checking WiFi signal strength from the command line would be iw
. Here's why:
- Modern and Maintained:
iw
is a newer tool compared toiwconfig
andiwlist
, which are older and part of the deprecatedwireless-tools
package.iw
is part of theiw
package, which is actively maintained and aligns with the modernnl80211
wireless stack. - Rich Information:
iw
provides detailed information about the wireless interface, including signal strength, link quality, and more. It's more versatile and can handle newer wireless technologies and configurations. - Ease of Use: The command syntax for
iw
is straightforward and easy to use. For example, to check the signal strength, you can simply use:
iw dev <interface> link
This command will provide you with the current link quality, signal level, and other relevant information.
- Scripting Friendly: The output of
iw
is well-structured and easier to parse programmatically, making it a good choice for scripting and automation.
Here's an example of how you can use iw
to check the signal strength:
iw dev wlan0 link
This command will output something like:
Connected to 00:11:22:33:44:55 (on wlan0) SSID: MyNetwork freq: 2437 RX: 123456 bytes (1234 packets) TX: 654321 bytes (6543 packets) signal: -51 dBm tx bitrate: 54.0 MBit/s
In summary, iw
is my preferred tool for checking WiFi signal strength due to its modernity, ease of use, and rich feature set.
So, what's your preferred tool for viewing Wifi signal from command line in Linux? Share your tips via the comment section below.
Related Read: