Home Linux Networking How To Check WiFi Signal Strength From Commandline In Linux

How To Check WiFi Signal Strength From Commandline In Linux

By sk
959 views

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.

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
Display WiFi Signal Strength using nmcli Command
Display WiFi Signal Strength using nmcli Command

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
Find WiFi Signal Strength using iw Command
Find WiFi Signal Strength using iw Command

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.

Display Wireless Network Connection Signal Strength with wavemon
Display Wireless Network Connection Signal Strength with wavemon

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:

  1. 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.
  2. iw: I favor iw 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.
  3. wavemon: I prefer wavemon 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.
  4. iwconfig and iwlist: While these are useful for basic checks, I consider them somewhat outdated compared to nmcli and iw. 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:

  1. Modern and Maintained: iw is a newer tool compared to iwconfig and iwlist, which are older and part of the deprecated wireless-tools package. iw is part of the iw package, which is actively maintained and aligns with the modern nl80211 wireless stack.
  2. 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.
  3. 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.

  1. 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:

You May Also Like

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More