- Как отобразить доступные WiFi сети, их каналы, уровень сигнала и т.д. из командной строки
- Вариант №1: Сканируем и выводим список доступных WiFi-сетей с помощью nmcli
- Вариант 2. Используйте wavemon, чтобы получить список доступных сетей Wi-Fi.
- How To Show Available WiFi Networks, Their Channels, Signal Strength And More From The Command Line
- Option #1: Scan and list available WiFi networks using nmcli
- Option #2: Get a list of available WiFi networks using wavemon
- How to scan Wifi network from terminal in Linux
- 1. iwlist
- 2. iw command
- 3. nmcli command
- Conclusion
Как отобразить доступные WiFi сети, их каналы, уровень сигнала и т.д. из командной строки
В этой статье объясняется, как использовать командную строку для просмотра доступных сетей Wi-Fi в Linux, списка их каналов, качества связи, безопасности, уровня сигнала и многого другого.
Это полезно для сканирования доступных сетей Wi-Fi, чтобы быстро определить уровень их сигнала, просмотра их каналов, чтобы увидеть, какой канал WiFi используется для уменьшения помех, и так далее и тому подобное.
Существует несколько методов/инструментов для сканирования доступных сетей Wi-Fi и перечисления их сведений, но в этой статье я перечисляю только 2 метода, которые просты в использовании и предоставляют достаточно информации для выполнения задачи.
Вариант №1: Сканируем и выводим список доступных WiFi-сетей с помощью nmcli
нмкли, Инструмент командной строки для управления состоянием сети и составления отчетов, может сканировать и составлять список доступных сетей WiFi, независимо от того, подключен ли WiFi к сети. Он уже должен быть установлен в вашем дистрибутиве Linux, нет необходимости указывать имя интерфейса, и он по умолчанию работает без привилегий суперпользователя (sudo), или, по крайней мере, так в моих тестах на Fedora и Ubuntu Situation. Используйте следующие команды для отображения доступных беспроводных сетей SSID, режимов, каналов, скоростей передачи, уровней сигнала, полос и безопасности:
Я видел, как некоторые пользователи говорят, что им нужно запускать nmcli с помощью sudo, чтобы показать доступные беспроводные сети, но это не тот случай, когда они пытаются использовать Fedora 31 и 30, Ubuntu 19.10 или 18.04. Однако, если nmcli ничего не отображает, попробуйте запустить его с помощью sudo:
Чтобы заставить nmcli отображать дополнительную информацию о сканируемой сети Wi-Fi, включая SSID-HEX, BSSID, частоту и т. д., запустите его следующим образом:
Скриншоты:
Это отобразит отсканированные данные WiFi в таблице. Если вы хотите переключиться на многострочный вид, чтобы вам не нужно было увеличивать ширину окна терминала, чтобы увидеть все детали, используйте -m multiline , так:
nmcli -m multiline -f ALL dev wifi
Чтобы использовать в скрипте, используйте краткий ( -t ) метод вывода:
Если вы хотите заставить nmcli повторно сканировать доступные сети Wi-Fi, используйте rescan Параметры:
Вариант 2. Используйте wavemon, чтобы получить список доступных сетей Wi-Fi.
ВейвмонТерминальный пользовательский интерфейс (TUI), использующий ncurses для мониторинга уровня беспроводного сигнала и шума, статистики пакетов, конфигурации устройства и параметров сети. Если вы не используете NetworkManager или просто предпочитаете nmcli, используйте его вместо nmcli.
Используйте его, чтобы получить список доступных точек доступа Wi-Fi, независимо от того, подключены ли они к сети Wi-Fi или нет. Инструмент требует прав суперпользователя (например, для запуска с помощью sudo) для сканирования доступных сетей Wi-Fi по умолчанию.
Wavemon может отображать следующую информацию о доступных (отсканированных) сетях Wi-Fi: SSID, BSSID (mac-адрес точки доступа), качество сигнала, мощность сигнала, канал и частоту WiFi. Wavemon не устанавливается по умолчанию, но многие дистрибутивы Linux доступны в следующих репозиториях. Установите следующим образом:
- Debian, Ubuntu, Linux Mint, Pop! _OS, Elementary OS и другие дистрибутивы Linux на базе Debian или Ubuntu:
sudo zypper install wavemon
Чтобы выполнить поиск доступных сетей Wi-Fi, нажмите F3 Перейдите на вкладку «Сканирование». Ищете продвинутый WiFi-сканер с большим количеством функций? Попробуйте Kismet, инструмент командной строки, который получил веб-интерфейс в апреле 2019 года.
How To Show Available WiFi Networks, Their Channels, Signal Strength And More From The Command Line
This can be useful to scan available WiFi networks to quickly see their signal strength, see their channels to know which WiFi channel to use for less interference, and so on.
There are multiple ways / tools to scan for available WiFi networks and list their details, but in this article I’ll only list 2 which are easy to use and provide enough information for this task.
Option #1: Scan and list available WiFi networks using nmcli
nmcli, a command line tool for controlling and reporting the network status, can scan and list available WiFi networks regardless of the WiFi being connected to a network or not. This should already be installed on your Linux distribution, it doesn’t require specifying the interface name, and can work without super user (sudo) privileges by default or at least that’s the case in my test on both Fedora and Ubuntu.
Use nmcli to show the available wireless networks SSID, mode, channel, transfer rate, signal strength, bars and security used using:
This is how the command output looks:
I’ve seen some users saying that they had to run nmcli with sudo to get it to show available wireless networks, but that wasn’t the case when trying this on Fedora 31 and 30, or on Ubuntu 19.10 or 18.04. Still, in case nmcli doesn’t show anything, try running it with sudo:
To get nmcli to show some extra information about the scanned WiFi networks, including the SSID-HEX, BSSID, frequency, and more, run it like this:
This shows the scanned WiFi details in a tabular view. In case you want to switch to multiline view, so you don’t have to expand the terminal window width to see all the details, use -m multiline , like this:
nmcli -m multiline -f ALL dev wifi
For usage in scripts, use the terse ( -t ) output mode:
In case you want to force nmcli to rescan the available WiFi networks, use the rescan option:
Option #2: Get a list of available WiFi networks using wavemon
wavemon is terminal user interface (TUI) that uses ncurses, which monitors wireless signal and noise levels, packet statistics, device configuration and network parameters. Use this instead of nmcli, if you’re not using NetworkManager, or if you simply prefer this over nmcli.
Using it you can get a list of available Wifi access points, regardless if you’re connected to a WiFi network or not. The tool requires super user permissions (e.g. run it with sudo) to scan for available Wifi networks by default.
wavemon can show the following information for available (scanned) WiFi networks: SSID, BSSID (access point mac address), signal quality, signal strength, WiFi channel, and frequency.
wavemon is not installed by default, but it’s available in the repositories for many Linux distributions. Install it as follows:
- Debian, Ubuntu, Linux Mint, Pop!_OS, Elementary OS and other Debian or Ubuntu based Linux distributions:
sudo zypper install wavemon
To scan for available WiFi networks press F3 to switch to the scan tab.
Looking for a more advanced WiFi scanner with extra features? Check out Kismet, a command line tool that got a web UI back in April, 2019.
How to scan Wifi network from terminal in Linux
Scanning for wifi networks will show you the ssids of all the wifi networks in your neighbourhood that your wifi adapter can detect or connect to. By default the gui network manager apps do this in kde and gnome desktop environments.
However you can also scan the wifi networks from the command prompt. In this article we take a look at some simple commands that can be used to list out all the wifi networks that can be seen by the wifi adapter.
1. iwlist
The iwlist command when run with root privileges can scan and list out the wifi networks. Using grep we can extract the specific piece of information we are interested in. Here is a minimal example:
$ sudo iwlist wlp0s20f3 scan | grep -i 'frequency\|ssid\|signal' Frequency:2.442 GHz (Channel 7) Quality=36/70 Signal level=-74 dBm ESSID:"AirtelFiber" Frequency:2.412 GHz (Channel 1) Quality=43/70 Signal level=-67 dBm ESSID:"TP-Link_6018" Frequency:2.422 GHz (Channel 3) Quality=33/70 Signal level=-77 dBm ESSID:"Himadri" Frequency:2.432 GHz (Channel 5) Quality=31/70 Signal level=-79 dBm ESSID:"dlink-15A3" Frequency:2.437 GHz (Channel 6) Quality=30/70 Signal level=-80 dBm ESSID:"OnePlus 5" Frequency:2.447 GHz (Channel 8) Quality=33/70 Signal level=-77 dBm ESSID:"Krishna" Frequency:2.457 GHz (Channel 10) Quality=29/70 Signal level=-81 dBm ESSID:"JioFiber-01" Frequency:2.462 GHz (Channel 11) Quality=25/70 Signal level=-85 dBm ESSID:"Ayush22" Frequency:5.18 GHz (Channel 36) Quality=22/70 Signal level=-88 dBm ESSID:"Ayush22_5G" Frequency:5.22 GHz (Channel 44) Quality=24/70 Signal level=-86 dBm ESSID:"Himadri_5G" Frequency:2.417 GHz (Channel 2) Quality=33/70 Signal level=-77 dBm ESSID:"deep wifi" Frequency:2.452 GHz (Channel 9) Quality=23/70 Signal level=-87 dBm ESSID:"Subash_ext" Frequency:2.462 GHz (Channel 11) Quality=22/70 Signal level=-88 dBm ESSID:"angshu" Frequency:5.745 GHz Quality=26/70 Signal level=-84 dBm ESSID:"AirtelFiber_5GHz" $
You need to specify the interface name of your wifi adapter. If you don’t already know that use the iwconfig command to find it.
Note that it is important to run the command with root privileges. Without root the command will run but the output will not be accurate and keep changing everytime.
We can see the ssid, signal level, frequency band and channel number of each wifi network. This is useful information!
2. iw command
The next command is iw and it can scan the wifi networks as well.
$ sudo iw dev wlp0s20f3 scan | grep -i 'ssid\|signal\|^bss' BSS 98:35:ed:d4:e1:48(on wlp0s20f3) -- associated signal: -66.00 dBm SSID: AirtelFiber BSS ac:84:c6:f4:60:18(on wlp0s20f3) signal: -62.00 dBm SSID: TP-Link_6018 BSS b6:a7:c6:53:cf:00(on wlp0s20f3) signal: -79.00 dBm SSID: BSS b4:a7:c6:53:cf:00(on wlp0s20f3) signal: -80.00 dBm SSID: Himadri HESSID: 00:00:00:00:00:00 BSS b4:b0:24:3f:29:44(on wlp0s20f3) signal: -79.00 dBm SSID: deep wifi BSS 8c:a3:99:d3:79:f3(on wlp0s20f3) signal: -83.00 dBm SSID: JioFiber-01 BSS 98:35:ed:d4:e1:4c(on wlp0s20f3) signal: -82.00 dBm SSID: AirtelFiber_5GHz BSS b4:a7:c6:53:cf:01(on wlp0s20f3) signal: -85.00 dBm SSID: Himadri_5G BSS b6:a7:c6:53:cf:01(on wlp0s20f3) signal: -84.00 dBm SSID: BSS 8c:a3:99:2f:a9:fd(on wlp0s20f3) signal: -84.00 dBm SSID: Ayush22_5G BSS 0c:80:63:76:5f:90(on wlp0s20f3) signal: -79.00 dBm SSID: Krishna BSS 7a:22:e5:f1:83:6d(on wlp0s20f3) signal: -83.00 dBm SSID: OnePlus 5 $
The output has lots of information quite similar to the iwlist command.
3. nmcli command
The nmcli command is actually a tool to control NetworkManager from the terminal. And it can used to query the interface for available wifi networks. Here is a quick example.
Note that we need not provide the interface name of the wifi adapter with nmcli.
$ nmcli dev wifi list IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY AC:84:C6:F4:60:18 TP-Link_6018 Infra 1 270 Mbit/s 64 ▂▄▆_ WPA2 * 98:35:ED:D4:E1:48 AirtelFiber Infra 7 130 Mbit/s 53 ▂▄__ WPA2 B4:B0:24:3F:29:44 deep wifi Infra 2 270 Mbit/s 39 ▂▄__ WPA2 B4:A7:C6:53:CF:00 Himadri Infra 3 130 Mbit/s 39 ▂▄__ WPA2 60:63:4C:84:15:AA dlink-15A3 Infra 5 270 Mbit/s 35 ▂▄__ WPA1 WPA2 8C:A3:99:D3:79:F3 JioFiber-01 Infra 10 130 Mbit/s 34 ▂▄__ WPA2 0C:80:63:76:5F:90 Krishna Infra 8 405 Mbit/s 32 ▂▄__ WPA2 8C:A3:99:2F:A9:FC Ayush22 Infra 11 130 Mbit/s 29 ▂___ WPA2 8A:D8:1B:26:FC:02 -- Infra 9 195 Mbit/s 27 ▂___ WPA2 8C:A3:99:2F:A9:FD Ayush22_5G Infra 36 270 Mbit/s 27 ▂___ WPA2 B6:A7:C6:53:CF:01 -- Infra 44 270 Mbit/s 27 ▂___ WPA2 98:35:ED:D4:E1:4C AirtelFiber_5GHz Infra 149 270 Mbit/s 27 ▂___ WPA2 10:62:EB:1D:D2:F5 Debnath_Adv2 Infra 1 270 Mbit/s 25 ▂___ WPA1 WPA2 7A:22:E5:F1:83:6D OnePlus 5 Infra 6 130 Mbit/s 25 ▂___ WPA2 B4:A7:C6:53:CF:01 Himadri_5G Infra 44 270 Mbit/s 24 ▂___ WPA2 84:D8:1B:26:FC:02 Subash_ext Infra 9 195 Mbit/s 22 ▂___ WPA1 WPA2 84:D8:1B:14:9F:D0 Joydip Infra 10 270 Mbit/s 22 ▂___ WPA2 60:E3:27:7B:2B:D4 angshu Infra 11 135 Mbit/s 20 ▂___ WPA2 $
The nmcli command generates a fancy colorful output with a nice looking signal strength bar graph. The output is quite well formatted also.
Conclusion
That was a quick list of commands to query wifi networks from the command shell. If you want to learn more about wifi commands in linux check out our previous articles.
A Tech Enthusiast, Blogger, Linux Fan and a Software Developer. Writes about Computer hardware, Linux and Open Source software and coding in Python, Php and Javascript. He can be reached at [email protected] .