Cookie

Nell’articolo di oggi ci occupiamo della rete, soprattutto Wi-Fi. Con Linux abbiamo a disposizione svariati programmi a riga di comando che ci permettono di monitorare e manipolare le reti. Quella che segue è una serie di strumenti per Linux usati per monitorarla. Andremo ad analizzare la velocità, il bitrate, la qualità e la potenza del segnale e altro ancora.

La scheda Wi-Fi

Digitiamo il seguente comando per elencare le schede Wi-Fi installate sul computer:

$ lspci
$ lspci | grep -i wireless
$ lspci | egrep -i --color 'wifi|wlan|wireless'

L’output nel mio caso è questo:

0c:00.0 Network controller: Intel Corporation Ultimate N WiFi Link 5300

Ci annotiamo 0c:00.0, potremmo usare questi numeri per identificare il nome del dispositivo Wi-Fi o i driver.

I driver della scheda Wi-Fi

Digitiamo il seguente comando:

$ lspci -vv -s 0c:00.0

Il cui output è il seguente:

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

Configurare l’interfaccia Wi-Fi

Il comando iwconfig (verrà sostituito da iw) è simile al soppiantato ifconfig (ora sostituito da ip) ma è dedicato alle interfacce Wi-Fi. Viene usato per manipolare i parametri base come il nome della rete, il tipo, il canale, la velocità, la cifratura e molto altro. Per controllare i parametri dell’interfaccia wlp5s0 digitiamo:

iwconfig wlp5s0

L’output:

wlp5s0    IEEE 802.11abgn ESSID:"tammazzo"
         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

L’output qui sopra ci da svariate informazioni:

  1. il nome del protocollo MAC utilizzatoESSID: il nome della reteNWID: il canale radiola sensibilitàla modalità di funzionamentol’indirizzo dell’access pointla velocitàil tipo di cifraturale impostazioni di consumo energetico

È possibile anche avere informazioni dettagliate sui tipi di connessioni disponibili:

$ nmcli connection show

Produce questo output:

NAME                    UUID                                    TYPE               DEVICE 
tammazzo 18916b35-9d58-42bc-bdc6-fc065940c701 802-11-wireless wlp5s0
Connessione via cavo 1 f9405c66-d4be-32ea-8e72-29cc46cbac44 ethernet --

La rete a cui siamo connessi con l’interfaccia wlp5s0 è “tammazzo“, ma ci viene mostrata anche la scheda di rete “wired” alla quale non siamo connessi.Possiamo ottenere informazioni più dettagliate sulla rete in uso con questo comando:

$ nmcli connection show "tammazzo"

E questo è l’output:

connection.id:                                  tammazzo
connection.uuid: d943343d-a105-4f6f-92c3-43873b75d874
connection.stable-id: --
connection.type: 802-11-wireless
connection.interface-name: --
connection.autoconnect: sì
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.auth-retries: -1
connection.timestamp: 1543060508
connection.read-only: no
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: sconosciuto
connection.lldp: default
802-11-wireless.ssid: tammazzo
802-11-wireless.mode: infrastructure
802-11-wireless.band: --
802-11-wireless.channel: 0
802-11-wireless.bssid: --
802-11-wireless.rate: 0
802-11-wireless.tx-power: 0
802-11-wireless.mac-address: 00:1E:64:39:A5:58
802-11-wireless.cloned-mac-address: --
802-11-wireless.generate-mac-address-mask: --
802-11-wireless.mac-address-blacklist: --
802-11-wireless.mac-address-randomization: default
802-11-wireless.mtu: auto
802-11-wireless.seen-bssids: CC:CE:1E:30:2A:BF
802-11-wireless.hidden: no
802-11-wireless.powersave: 0 (default)
802-11-wireless-security.key-mgmt: wpa-psk
802-11-wireless-security.wep-tx-keyidx: 0
802-11-wireless-security.auth-alg: open
802-11-wireless-security.proto: --
802-11-wireless-security.pairwise: --
802-11-wireless-security.group: --
802-11-wireless-security.pmf: 0 (default)
802-11-wireless-security.leap-username: --
802-11-wireless-security.wep-key0: <hidden>
802-11-wireless-security.wep-key1: <hidden>
802-11-wireless-security.wep-key2: <hidden>
802-11-wireless-security.wep-key3: <hidden>
802-11-wireless-security.wep-key-flags: 0 (nessuno)
802-11-wireless-security.wep-key-type: unknown
802-11-wireless-security.psk: <hidden>
802-11-wireless-security.psk-flags: 0 (nessuno)
802-11-wireless-security.leap-password: <hidden>
802-11-wireless-security.leap-password-flags: 0 (nessuno)
802-11-wireless-security.wps-method: 0 (default)
ipv4.method: auto
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: ""
ipv4.dns-priority: 0
ipv4.addresses: --
ipv4.gateway: --
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname: sì
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.never-default: no
ipv4.may-fail: sì
ipv4.dad-timeout: -1 (default)
ipv6.method: auto
ipv6.dns: --
ipv6.dns-search: --
ipv6.dns-options: ""
ipv6.dns-priority: 0
ipv6.addresses: --
ipv6.gateway: --
ipv6.routes: --
ipv6.route-metric: -1
ipv6.route-table: 0 (unspec)
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: sì
ipv6.ip6-privacy: -1 (sconosciuto)
ipv6.addr-gen-mode: stable-privacy
ipv6.dhcp-send-hostname: sì
ipv6.dhcp-hostname: --
ipv6.token: --
proxy.method: none
proxy.browser-only: no
proxy.pac-url: --
proxy.pac-script: --
GENERAL.NAME: tammazzo
GENERAL.UUID: d943343d-a105-4f6f-92c3-43873b75d874
GENERAL.DEVICES: wlp5s0
GENERAL.STATE: attivata
GENERAL.DEFAULT: sì
GENERAL.DEFAULT6: no
GENERAL.SPEC-OBJECT: /org/freedesktop/NetworkManager/AccessPoint/1
GENERAL.VPN: no
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/1
GENERAL.ZONE: --
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: 192.168.1.104/24
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 600
IP4.ROUTE[2]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[3]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]: 192.168.1.1
IP4.DOMAIN[1]: fritz.box
DHCP4.OPTION[1]: requested_subnet_mask = 1
DHCP4.OPTION[2]: requested_rfc3442_classless_static_routes = 1
DHCP4.OPTION[3]: subnet_mask = 255.255.255.0
DHCP4.OPTION[4]: domain_name_servers = 192.168.1.1
DHCP4.OPTION[5]: ip_address = 192.168.1.104
DHCP4.OPTION[6]: requested_static_routes = 1
DHCP4.OPTION[7]: dhcp_server_identifier = 192.168.1.1
DHCP4.OPTION[8]: requested_time_offset = 1
DHCP4.OPTION[9]: broadcast_address = 192.168.1.255
DHCP4.OPTION[10]: dhcp_rebinding_time = 75600
DHCP4.OPTION[11]: requested_interface_mtu = 1
DHCP4.OPTION[12]: requested_domain_name_servers = 1
DHCP4.OPTION[13]: dhcp_message_type = 5
DHCP4.OPTION[14]: requested_broadcast_address = 1
DHCP4.OPTION[15]: routers = 192.168.1.1
DHCP4.OPTION[16]: dhcp_renewal_time = 43200
DHCP4.OPTION[17]: requested_domain_name = 1
DHCP4.OPTION[18]: domain_name = fritz.box
DHCP4.OPTION[19]: requested_routers = 1
DHCP4.OPTION[20]: expiry = 1543141511
DHCP4.OPTION[21]: requested_wpad = 1
DHCP4.OPTION[22]: requested_netbios_scope = 1
DHCP4.OPTION[23]: requested_ms_classless_static_routes = 1
DHCP4.OPTION[24]: requested_netbios_name_servers = 1
DHCP4.OPTION[25]: network_number = 192.168.1.0
DHCP4.OPTION[26]: requested_domain_search = 1
DHCP4.OPTION[27]: next_server = 192.168.1.1
DHCP4.OPTION[28]: requested_ntp_servers = 1
DHCP4.OPTION[29]: ntp_servers = 192.168.1.1
DHCP4.OPTION[30]: dhcp_lease_time = 86400
DHCP4.OPTION[31]: requested_host_name = 1
IP6.ADDRESS[1]: fe80::32c:a93:1f28:fb37/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]: dst = fe80::/64, nh = ::, mt = 256
IP6.ROUTE[3]: dst = fe80::/64, nh = ::, mt = 600



Qualità del segnale

Dal comando iwconfig wlp5s0 possiamo controllare la qualità complessiva del segnale. Questo dato numerico è basato sul livello delle interferenze, il bit error rate, il frame error rate, quanto segnale si riceve (distanza dall’AP), i tempi di sincronizzazione e altre misure hardware. Questa è la nostra riga di riferimento:

Link Quality=41/70 Signal level=-69 dBm

Il valore 41/70 è un valore aggregato e dipende totalmente dal driver e dall’hardware.Il valore -69dBm invece è indicativo del livello del segnale (quanto “forte” viene ricevuto). Il programma iw usa le impostazioni del driver per mostrare il valore, che può essere espresso in dBm o in una scala da 1 a 8.Un altro comando per elencare le reti disponibili, con relative segnale, sicurezza, velocità e altro è li seguente:

$ nmcli dev wifi

Ed ecco l’output:

* SSID                MODE   CHAN   RATE        SIGNAL   BARS    SECURITY 
* tammazzo Infra 8 54 Mbit/s 42 ▂▄▆_ WPA2
InfostradaWiFi-895135 Infra 7 54 Mbit/s 37 ▂▄__ WPA2
LoremCorp Infra 1 54 Mbit/s 62 ▂▄▆_ WPA2 802.1X
Internet Infra 6 54 Mbit/s 29 ▂___ WPA1
HPB110a.F2672A Ad-Hoc 6 54 Mbit/s 22 ▂___ --
Jozinet Infra 1 54 Mbit/s 19 ▂___ WEP
VOIP Infra 1 54 Mbit/s 20 ▂___ WEP
MARTINA Infra 4 54 Mbit/s 32 ▂▄__ WPA2
N24PU1 Infra 7 11 Mbit/s 22 ▂___ --
alfa Infra 1 54 Mbit/s 67 ▂▄▆_ WPA2
bertnet Infra 5 54 Mbit/s 20 ▂___ WPA1 WPA2

Wavemon

L’ultimo programma a riga di comando che mi sento di consigliare è wavemon. Si tratta di un piccolo pacchetto già presente nei repository (su Ubuntu si installa con un semplice apt install wavemon) e si avvia in modo altrettanto semplice con il comando wavemon.L’output è piuttosto esplicativo:

Non ti basta?


TheJoe

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.