Linux operating systems come with a various set of tools allowing you to manipulate the Wireless Extensions and monitor wireless networks. Here is a list of Linux tools used for wireless network monitoring tools that can be used from your laptop or desktop system to find out wifi network speed, bit rate, signal quality/strength, and more.Linux Commands: To Find Out Wireless Network Speed and Other Info/This page shows how to find the speed of the network interface using various commands on Linux. To see the speed of WLAN interface, one can use iwconfig/iw command, cat command, and 3rd party apps. One can use GUI tools too.1. Find out your Linux wireless card chipset informationlspci
lspci | grep -i broadcom
lspci | grep -i wireless
lspci | egrep -i --color 'wifi|wlan|wireless'
0c:00.0 Network controller: Intel Corporation Ultimate N WiFi Link 5300
Here is outputs from broadcom based wifi card:
01:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43228 802.11a/b/g/n
Another outputs:
04:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb)
2. Find out Linux wireless card driver informationlspci -vv -s 0c:00.0
Sample outputs:
0c:00.0 Network controller: Intel Corporation Ultimate N WiFi Link 5300
Subsystem: Intel Corporation Device 1121
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-
Kernel driver in use: iwlwifi
Another option is to pass the -k option to lspci:
lspci -k | more
One can use the lshw command to list network devices including Wi-Fi device on Linux:
sudo lshw -C network
Quote*-network
description: Wireless interface
product: Intel Corporation
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:52:00.0
logical name: wlp82s0
version: 1a
serial: 06:d5:95:ff:1c:c7
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=5.3.0-18-generic firmware=48.4fa0041f.0 ip=192.168.2.232 latency=0 link=yes multicast=yes wireless=IEEE 802.11
3. Disabling wireless networking ( Wi-Fi )You may want to disable Wi-Fi on all laptops as it poses a serious security risk to sensitive or classified systems and networks. You can easily disable Wi-Fi under Linux using the techniques described here.4. How to configure a wireless network interface on Linuxiwconfig command is similar to ifconfig command, but is dedicated to the Linux wireless interfaces. It is used to manipulate the basic wireless parameters such as ssid, mode, channel, bit rates, encryption key, power and much more. To display information about wlan0 wireless interface, enter:iwconfig Interface-Name-Here
iwconfig wlan0
Sample outputs:
wlan0 IEEE 802.11abgn ESSID:"nixcraft5g"
Mode:Managed Frequency:5.18 GHz Access Point: 74:44:44:44:57:FC
Bit Rate=6 Mb/s Tx-Power=15 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=41/70 Signal level=-69 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:28 Missed beacon:0
In the above output iwconfig command shows lots of information:
The name of the MAC protocol used
ESSID (Network Name)
The NWID
The frequency (or channel)
The sensitivity
The mode of operation
Access Point address
The bit-rate
The RTS threshold
The fragmentation threshold
The encryption key
The power management settings
On modern system you may need to use the iw command. If you are using NetworkManager, try the nmcli CLI for controlling NetworkManager including wifi info. To see all connection NetworkManager has:(https://pix.cobrasoft.org/images/2023/01/09/wifi-info-centos-7.webp)
nmcli -f GENERAL,WIFI-PROPERTIES dev show wlp4s0
Sample outputs:
GENERAL.DEVICE: wlp4s0
GENERAL.TYPE: wifi
GENERAL.NM-TYPE: NMDeviceWifi
GENERAL.VENDOR: Intel Corporation
GENERAL.PRODUCT: Wireless 7260 (Dual Band Wireless-AC 7260)
GENERAL.DRIVER: iwlwifi
GENERAL.DRIVER-VERSION: 3.10.0-514.21.2.el7.x86_64
GENERAL.FIRMWARE-VERSION: 17.352738.0
GENERAL.HWADDR: 7C:5C:F8:8E:33:A2
GENERAL.MTU: 0
GENERAL.STATE: 100 (connected)
GENERAL.REASON: 0 (No reason given)
GENERAL.UDI: /sys/devices/pci0000:00/0000:00:1c.3/0000:04:00.0/net/wlp4s0
GENERAL.IP-IFACE: wlp4s0
GENERAL.IS-SOFTWARE: no
GENERAL.NM-MANAGED: yes
GENERAL.AUTOCONNECT: yes
GENERAL.FIRMWARE-MISSING: no
GENERAL.NM-PLUGIN-MISSING: no
GENERAL.PHYS-PORT-ID: --
GENERAL.CONNECTION: 5G8cc3c8680204b65fb24eeab142d4da
GENERAL.CON-UUID: 18916b35-9d58-42bc-bdc6-fc065940c701
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/0
GENERAL.METERED: no (guessed)
WIFI-PROPERTIES.WEP: yes
WIFI-PROPERTIES.WPA: yes
WIFI-PROPERTIES.WPA2: yes
WIFI-PROPERTIES.TKIP: yes
WIFI-PROPERTIES.CCMP: yes
WIFI-PROPERTIES.AP: yes
WIFI-PROPERTIES.ADHOC: yes
WIFI-PROPERTIES.2GHZ: yes
WIFI-PROPERTIES.5GHZ: yes
How do I find out wifi link quality on Linux?You can get overall quality of the link. This may be based on the level of contention or interference, the bit or frame error rate, how good the received signal is, some timing synchronisation, or other hardware metric.iwconfig wlan0 | grep -i --color quality
Sample outputs:
Link Quality=41/70 Signal level=-69 dBm
cat /proc/net/wireless
Better use the watch (gnuwatch, bsdwatch) command to run cat command repeatedly, displaying wireless signal on screen:
watch -n 1 cat /proc/net/wireless
Sample outputs:
Linux watch wireless signal
6. Using Gnome NetworkManagerGnome and many other Linux desktop operating system can use NetworkManager to keep an active network connection available at all times. he point of NetworkManager is to make networking configuration and setup as painless and automatic as possible. This package contains a systray applet for GNOME's notification area but it also works for other desktop environments which provide a systray like KDE or XFCE. It displays the available networks and allows to easily switch between them. For encrypted networks it will prompt the user for the key/passphrase and it canQuotePrerequisite
By default, wavemon command may not be installed on your system. Hence, use the apk command on Alpine Linux, dnf command/yum command on RHEL & co, apt command/apt-get command on Debian, Ubuntu & co, zypper command on SUSE/OpenSUSE, pacman command on Arch Linux to install the wavemon.
wavemon is a ncurses-based monitoring application for wireless network devices. It displays continuously updated information about signal levels as well as wireless-specific and general network information. Currently, wavemon can be used for monitoring devices supported by the wireless extensions, included in kernels version 2.4 and higher.QuoteReading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
wavemon
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 49.5 kB of archives.
After this operation, 121 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu eoan/universe amd64 wavemon amd64 0.8.2-1 [49.5 kB]
Fetched 49.5 kB in 1s (45.8 kB/s)
Selecting previously unselected package wavemon.
(Reading database ... 215741 files and directories currently installed.)
Preparing to unpack .../wavemon_0.8.2-1_amd64.deb ...
Unpacking wavemon (0.8.2-1) ...
Setting up wavemon (0.8.2-1) ...
Processing triggers for man-db (2.8.7-3) ...
sudo zypper install wavemon
Type the following yum command on a RHEL/CentOS/Scientific/Oracle Linux (first enable EPEL repo. See how to enable EPEL on RHEL 8 and CentOS 8):
sudo yum install wavemon
Run the following dnf command on a Fedora Linux:
sudo dnf install wavemon
Execute the following pacman command on an Arch Linux:
sudo pacman -S wavemon
For Alpine Linux, run apk command as follows:
apk add wavemon
How do I use wavemon?
Just type the following command to see the details:
wavemon