Post

Appunti per comandi network per linux

Quando si aggiorna la rete domestica con nuovi apparati e/o si vuole configurare un homelab, è probabile che sia necessario risolvere varie casistiche inerenti alla rete, di seguito ho compilato un elenco di comandi utili per la risoluzione di vari problemi di connettività e per quando si cerca di configurare vari Linux containers o VM.

Informazioni sulle interfacce di rete

Per avere informazioni sulle interfacce di rete nei dispositivi nel quale si è acceduti e per verificare se ha un indirizzo ip appropiatamente configurato.

Comandi IP

Per vedere tutti gli indirizzi IP, puoi usare il comando ip.

1
ip a

Puoi aggiungere ulteriore opzioni per vedere i vari protocolli IPv4 o IPv6, usando le opzioni -4 o -6.

1
2
ip -4 a
ip -6 a

Alternativamente si può usare anche il comando ifconfig. Necessità però l’installazione del pacchetto net-tools se non presente di default sulla distro linux, è leggermente più leggibile come comando per reperire informazioni a colpo d’occhio sulle interfaccie di rete. L’unica differenza con il precedente comando è che ifconfig mostra alcune informazioni basiche riguardo i pacchetti di rete trasmessi/ricevuti.

1
ifconfig

Netstat

Utile per scoprire le varie porte in ascolto sul server dei vari servizi presenti sulla tua macchina. Anche questo necessità del pacchetto net-tools. Usando il comando senza opzioni, si andrà incontro a un grosso output a lista che mostra i socket di dominio locale in uso sulla macchina. Principalmente usati per le connessioni locali tra i processi. Per Filtrare useremo l’opzione -t per quanto riguarda i protocolli TCP e -u per UDP. Con opzione -l saranno mostrate le porte in ascolto. Se preferisci vedere gli ip piuttosto chei nomi host, usa l’opzione -n.

Puoi utilizzarli anche contemporanemente per filtrare al meglio il comando netstat come mostrato sotto:

1
netstat -tul

Se vuoi vedere l’ID del processo (pid) del servizio in ascolto su quella porta, usiamo l’opzione -p. Da usare con sudo. Altrimenti non sarà mostrato. Utile se si vuole interrompere un processo (kill) specificando l’id assegnato al processo.

1
sudo netstat -tulp

ormai il netstat è considerato obsoleto, al suo posto andrebbe usato il comando ss

Comando ss

Più semplice e veloce del netstat, può mostrare gli attributi dei PACKET, TCP, UDP, DCCP, RAW e domain sockets di Unix. Mostra tante informazioni dettagliate di come la tua macchina linux comunica con le altre macchine, reti e servizi.

per mostrare i vari sockets in ascolto sulla macchina basta:

1
ss -l

per fare ricerche più specifiche con -t per connessioni TCP, per quelle UDP -u, o per vedere le connesioni UNIX -x.

Disponibilità di rete

In questa categorie troveremo quei comandi utili per capire velocemente se raggiungi un host sulla rete o per determinare se effettivamente è acceso il server.

Ping

Con il ping puoi capire velocemente se puoi raggiungere un determinato device sulla tua stessa rete presupponendo che non è bloccato da un firewall. Pings sulla stessa network sono sempre permessi dato che il traffico non viene ridiretto dal router (il traffico rimane locale).

Possibile usarlo sia tramite indirizzo IP o hostname.

1
2
ping 192.168.1.10
ping hostnamemacchina

continuerà a “pingare” fino a che non fermi il comando (dipende dal terminale che usi, puoi terminare il comando con la scorciatoia di tasti Ctrl + Shift + C)

per specificare il numero di ping, con l’opzione -c configureremo il numero di volte che verrà eseguito.

1
ping -c 3 192.168.1.10

se hai indirizzi con protocollo IPv6 abilitati, va specificato anche nelle opzioni:

1
2
ping -4 192.168.1.10
ping -6 192.168.1.10

puoi specificarlo anche conteporanemente come segue:

1
ping -4 -c 3 192.168.1.10

La maggiorparte dei firewall/ambienti sono configurati per disabilitare la possibilità di ping nella rete, ma spesso è uno dei comandi che consiglio maggiormente anche per un semplice troubleshooting. Una delle possibili eccezioni è quella di permettere i ping dalla tua rete interna verso una possbile rete DMZ (acronimo di delimitarized zone, zona demilitarizzata, si indica una rete di computer, che funge tra due reti come zona cuscinetto con un proprio indirizzo IP delimitata mediante regole di accesso restrittive e rigide). Non Permettere il ping Da/A sulla rete DMZ aiuta maggiormente ad isolarla.

Trace Route

Il Trace route è utile per visualizzare il percorso che viene intrapreso per raggiungere un altra rete/network su internet. Principalmente è meno utile in un ambiente casalingo nella tua rete LAN, a meno che non sei in possesso di più punti router. In alcuni scenari homelab è possibile trovare l’utilizzo di un router per separare ulteriormente una rete interna. Puoi notare dall’output del comando che viene visualizzato asterischi o dei punti di domanda, in ambienti restrittivi è probabile anche che non tutto il percorso viene mostrato specialmente se ti trovi in una rete in presenza di policy firewall che bloccano/drop il traffico per il protocollo ICMP per ragioni di sicurezza.

il comando base è il seguente:

1
2
traceroute 8.8.8.8
traceroute google.com

Come il ping, puoi filtrarlo anche per i protocolli ip ipv4 e ipv6.

1
2
traceroute -4 google.com
traceroute -6 google.com

DNS

Comandi DNS sono utili nello specifico se si vuole assegnare hostname e/o sovascrivere i valori dns del tuo router. Questo per aiutarti in caso a determinare in primis che l’hostname punti correttamente all’indirizzo ip.

Comando Host

Per verificate l’indirizzo IP associato ad un domain name, vale sia sulla tua network locale sia su internet, usa il seguente comando host:

1
host google.com

Se vuoi specificare il server DNS da usare per il DNS lookup.

1
host google.com 1.1.1.1

Comando Dig

Se desideri avere più informazioni dettagliate riguardo il DNS, il comando giusto è il dig. l’uso di base è identico a quello host:

1
dig google.com

Puoi anche specificare quale server DNS utilizzare per il lookup (in questo caso @8.8.8.8):

1
dig @8.8.8.8 google.com

se vuoi vedere tutti i record DNS associati al dominio, utilizzare l’opzione any:

1
dig google.com any

puoi anche specificare nelle opzioni quale record dns nello specifico visualizzare (in questo caso i record mx):

1
dig google.com mx

Utile per quando vuoi conosce l’hostname/nome di dominio per un dato indirizzo ip. Tutto quello che occorre è specificare nelle opzioni -x insieme l’indirizzo IP:

1
dig -x 8.8.8.8

Systemd Resolve

il systemd-resolve viene usato per verificare il server dns in uso. Può essere utile durante del troubleshooting riguardo i problemi DNS quando si cerca di configurare una rete interna o quando si smanetta nei parametri dns, se configurabili, sul proprio router. se lanciato puoi verificare il server DNS corrente e se quest’ultimo è configurato e acquisito attraverso il DHCP del router o manualmente.

1
systemd-resolve --status

Quando si cambiano configurazioni DNS, può essere utile per pulire le cache del DNS resolver in modo che il proprio PC riesca a risolvere più velocemente il nuovo indirizzo ip assegnato. Basta semplicemente usare l’opzione --flush-caches.

1
sudo systemd-resolve --flush-caches

systemd-resolve è utile esclusivamente in quelle distro linux che usano systemd. Se su usa Ubuntu 22.04 o versioni successive, conviene utilizzare il resolvectl descritto poco sotto. Dato che il systemd-resolve non viene più supportato.

Resolvectl

Va usato il seguente comando per reperire le informazioni DNS o per pulire le cache DNS:

Per Vedere le statistiche DNS, incluse le cache hit rate:

1
resolvectl statistics

per pulire prima le cache DNS utilizzare i lseguente comando simile al systemd-resolve:

1
resolvectl flush-caches

DHCP

I comandi DHCP sono utili se vuoi rilasciare e rinnovare manualmente il DHCP lease per delle modifiche effettuate sul tuo router o su i tuoi switch.

Comando Dhclient

Se si assegna staticamente un indirizzo IP nel router per una macchina tramite il servizio DHCP, per modificare gli intervalli di indirizzi disponibili del servizio DHCP sul router/switch o se si esegue un’altra modifica di rete relativa al DHCP, è possibile utilizzare il comando dhclient per semplificare l’aggiornamento del lease DHCP dei dispositivi. Senza utilizzare il comando, sarà necessario disconnettersi e riconnettersi dalla rete fisicamente, tramite il pannello di controllo del sistema operativo o attendere fino alla scadenza del lease DHCP. L’esecuzione di un semplice comando sarà sicuramente più conveniente rispetto gli altri approcci.

Per rilasciare e rinnovare il lease DHCP sul dispositivo, è necessario immettere entrambi i seguenti comandi nell’ordine indicato. Necessiti dei privilegi sudo per questo comando.

1
2
sudo dhclient -r
sudo dhclient
Questo post è sotto licenza CC BY 4.0 a nome dell'autore.

DISCLAIMER: Questo blog non rappresenta una testata giornalistica in quanto viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge N°62 del 07/03/2001. Leggi di più

© Cybertome. Alcuni diritti riservati.

Servizio offerto da Jekyll con tema Chirpy