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.

0 commenti

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.