66

I need to see the channels used by all Wi-Fi networks in range in order to improve my Wi-Fi connection by selecting the channel to be used by my modem (a procedure related to the 'freebox' modem).

In Windows there is Vistumbler (that I know of).

What would be the equivalent in Ubuntu?


Edits after answers/comments:

  • The name of my wireless is registered as eth1 (not as wlan#) - as confirmed after comments and chats

  • What I want is a program that would display all wireless networks in range (which any network app does) and the channel used by each of them, like Vistumbler does:

    screenshot

  • I have an answer that seems satisfactory for now (wicd)- but please post more if there are other similar apps.

2

12 Answers 12

54

Linssid

LinSSID is graphically and functionally similar to Inssider (Microsoft™ Windows®). It is written in C++ using Linux NL80211 tools, Qt5, and Qwt 6.1.

You can use this Linssid:

sudo apt install linssid

screenshot

It will show you ssid, mac, power signal, and graphic.

4
  • Cannot test it now, but it looks like the closest to what I asked (that is something similar to Vistumbler)
    – user47206
    Commented May 1, 2014 at 16:35
  • yes very similar to inSSIDer ;) Commented May 8, 2014 at 10:40
  • It's really awesome! Commented Jul 4, 2016 at 15:22
  • 3
    On ubuntu 18.04, this must be started with sudo linssid. Useful tool. Commented Apr 28, 2019 at 11:53
53

In addition to Rozza's answer you can group the results and see how much each channel is used:

sudo iwlist wlan0 scan | grep Frequency | sort | uniq -c | sort -n

Example output would be like this (first column is count, see uniq -c ):

  1                     Frequency:2.422 GHz (Channel 3)
  1                     Frequency:2.432 GHz (Channel 5)
  1                     Frequency:5.26 GHz (Channel 52)
  1                     Frequency:5.5 GHz (Channel 100)
  2                     Frequency:2.452 GHz (Channel 9)
  2                     Frequency:2.472 GHz (Channel 13)
  3                     Frequency:2.447 GHz (Channel 8)
  6                     Frequency:2.437 GHz (Channel 6)
  6                     Frequency:2.462 GHz (Channel 11)
  7                     Frequency:5.18 GHz (Channel 36)
  8                     Frequency:2.412 GHz (Channel 1)

If you get something like wlan0 Interface doesn't support scanning, you have to replace wlan0 with the interface specified after running ifconfig (e.g. wlp2s0 etc).

4
  • I get wlan0 Interface doesn't support scanning.
    – jigglypuff
    Commented Oct 11, 2017 at 0:54
  • 5
    @nobism you must check what interface you are using to list them use "ifconfig" in the terminal Commented Nov 6, 2017 at 14:46
  • 1
    Newer ubuntu does not have ifconfig installed. Instead, you can use ip link to list all connection and interface on your PC. I use Ubuntu 19.10. Commented Nov 26, 2019 at 6:12
  • 1
    Hmm, I tried this command and got basically the same error as @jigglypuff, except I did check ifconfig first, and adjusted to use my correct interface. With that, I still got: wlp170s0 Interface doesn't support scanning : Invalid argument. wlp170s0 is definitely a wifi interface, though. Do some wifi cards not support this? Or perhaps there's variation in versions of iwlist or something? iwlist wlp170s0 scanning does give back output (and thus can be used with this answer), but it doesn't force a new scan, so sometimes there's not much there. :-/
    – lindes
    Commented Oct 25, 2022 at 23:52
18

I'm guessing you're looking to set to a channel that is not being used locally - so you want to see a summary of what is being used. Try the following from the command line:

sudo iwlist wlan0 scanning | grep -i Channel
12

If Kismet fails to work with your wireless card, I've used wicd in the past;

A network connection manager that aims to simplify wired and wireless networking in Linux.

https://launchpad.net/wicd

It is in Ubuntu repositories - can be easily installed from Synaptic.

Lists all networks & channels.

enter image description here

2
  • i used wicd before but then didn't noticed it displays channels (although only for wifi networks above a certain strength: it displays 14-15 wifi-networks/channels, while Vistumbler around 50. i'll keep it. thnx
    – user47206
    Commented Jun 18, 2013 at 8:08
  • 1
    The one-liner I used for a summary is wicd-cli --wireless --list-networks. To count how many neighbors are using each channel, wicd-cli --wireless --list-networks | awk '{print $3}' | sort -n | uniq -c
    – Matt D
    Commented Feb 22, 2016 at 1:02
9

Yes, There is Alternative to Vistumbler

Kismet : Network detector for 802.11 wireless LANs , Work Under Linux..

You can Download it from Kismet, or Open Terminal

sudo apt install kismet

Another Way To Monitoring Wireless but via Terminal:

  1. Open Terminal
  2. iwlist wlan0 scanning```
    
    

wlan0 it's your Wi-Fi interface, to get the name of your Wi-Fi interface see ip addr in terminal

5
  • 2
    Actually you don't need su and only to see the channel used by wifi you can use iwlist wlan0 channel Commented Jun 18, 2013 at 7:48
  • 1
    @cipricus Check first with lshw -C network (you should wait a while to finish this command) what is the logical name of your wifi interface! It seems that for you is not wlan0. Commented Jun 18, 2013 at 7:59
  • @cipricus Check again, eth1 is ethernet interface, not wireless interface. Should be something like wlan#, where '#' is a number. Commented Jun 18, 2013 at 8:10
  • 3
    @cipricus Now I remembered/find again, iwconfig command is much simple to see what is the logical name of your wifi interface. Commented Jun 18, 2013 at 8:13
  • @RaduRădeanu - thnx for all feedback, now lets delete our comments
    – user47206
    Commented Jun 18, 2013 at 9:07
6

nmcli

There is another CLI alternative which doesn't require sudo. This will return a two column list with the channels used and each count at its left.

nmcli -t -f CHAN device wifi | sort | uniq -c | sort -rn

Of course you can enclose above command between quotes and use watch -d to see any possible changes on the fly.

For just a traditional static list:

nmcli -f NAME,SSID,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,IN-USE device wifi
5

sparrow-wifi

Next-Gen GUI-based WiFi and Bluetooth Analyzer for Linux.

screenshot

Sparrow-wifi has been built from the ground up to be the next generation 2.4 GHz and 5 GHz Wifi spectral awareness tool. At its most basic it provides a more comprehensive GUI-based replacement for tools like inSSIDer and linssid that runs specifically on linux. In its most comprehensive use cases, sparrow-wifi integrates wifi, software-defined radio (hackrf), advanced bluetooth tools (traditional and Ubertooth), traditional GPS (via gpsd), and drone/rover GPS via mavlink in one solution.

Installation

git clone https://github.com/ghostop14/sparrow-wifi
cd sparrow-wifi
# If you don't install pip3 packages for sudo, you can't use sparrow with sudo privileges.
sudo pip3 install gps3 python-dateutil requests pyqt5 pyqtchart numpy matplotlib
sudo python3 sparrow-wifi.py
1
  • Very very good! In particular the "Utilization" column. Commented Mar 8, 2021 at 8:55
4

There's also Wifi Radar, not mentioned here yet.

It's in the Ubuntu repositories (as wifi-radar):

sudo apt-get install wifi-radar

Wifi Radar screenshot

1
  • nice. a limitation of the gui is that clicking on the channel column header the same-number channels are not grouped together
    – user47206
    Commented Nov 10, 2014 at 12:38
4

You can also use nm-tool on the command line (this is the default network manager for Ubuntu, normally you use its GUI). Somewhere in the output of nm-tool, it contains the following section of found access points:

  Wireless Access Points (* = current AP)
    Neighbors:       Infra, 00:XX:XX:XX:XX:04, Freq 2437 MHz, Rate 54 Mb/s, Strength 44 WPA WPA2
    *network-2C5A6:  Infra, 00:XX:XX:XX:XX:79, Freq 2437 MHz, Rate 54 Mb/s, Strength 100 WPA
    bbox2-8afd:      Infra, 00:XX:XX:XX:XX:0F, Freq 2412 MHz, Rate 54 Mb/s, Strength 42 WPA WPA2

To convert the frequencies to channel numbers, use the command iwlist frequency:

wlan0     32 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          [snip]
          Channel 140 : 5.7 GHz
          Current Frequency:2.437 GHz (Channel 6)
4

Wavemon

wavemon is an ncurses-based monitoring application for wireless network devices

screenshot

wavemon is a wireless device monitoring application that allows you to watch signal and noise levels, packet statistics, device configuration and network parameters of your wireless network hardware. It should work (though with varying features) with all devices supported by the Linux kernel.

Installation

sudo apt install wavemon
1
  • The best app imho.
    – desgua
    Commented Aug 14, 2022 at 10:15
1

If you wouldn't mind using the command line you can use wpa_supplicant to help you see the channels in use in the neigbourhood.
first Enter the wpa_cli interactive shell

sudo wpa_cli -i wlan0

when you are presented with the interactive shell, start a scan

> scan

finally to get the channels being used do

> scan_results

when done you can exit with quit

0

Adding to Rozza's answer. You can make a TUI version of this by passing the command to watch

sudo watch -n 1 "sudo iwlist wlp3s0 scan | grep Frequency | sort | uniq -c | sort -n"

You must log in to answer this question.