← Back to course

Rete dal Terminale

Rete dal Terminale

Bentornato.

Nella lezione precedente hai imparato a controllare processi e monitorare il sistema.

Ora usciamo dal tuo computer.

Entriamo nella rete.

Perché la tua macchina non vive da sola. Parla con router, server, siti web, API, repository di pacchetti e a volte con una stampante che rifiuta di collaborare perché le stampanti sono mobili maledetti.

Cosa Imparerai

In questa lezione imparerai a:

La Missione

La tua missione è semplice:

Usare il terminale per rispondere a queste domande:

Testare una Connessione con ping

Il comando ping controlla se un host è raggiungibile.

Prova:

ping -c 4 example.com

L’opzione -c 4 significa “invia 4 pacchetti”.

Potresti vedere:

64 bytes from example.com: icmp_seq=1 ttl=56 time=22.4 ms
64 bytes from example.com: icmp_seq=2 ttl=56 time=21.9 ms
64 bytes from example.com: icmp_seq=3 ttl=56 time=22.1 ms
64 bytes from example.com: icmp_seq=4 ttl=56 time=22.0 ms

Questo significa che il computer riesce a raggiungere example.com.

Se fallisce, può voler dire:

ping non è perfetto, ma è un buon primo controllo.

Come chiedere: “Ciao internet, sei vivo?”

Ping a un Indirizzo IP

Prova a fare ping a un IP pubblico:

ping -c 4 1.1.1.1

Se questo funziona, ma questo no:

ping -c 4 example.com

allora internet potrebbe funzionare, ma DNS potrebbe essere rotto.

DNS trasforma nomi come example.com in indirizzi IP.

Senza DNS, internet diventa una città dove ogni edificio ha solo coordinate e nessun nome.

Molto tecnico.

Molto fastidioso.

Scaricare una Pagina con curl

curl permette di fare richieste web dal terminale.

Prova:

curl https://example.com

Vedrai l’HTML della pagina.

Potrebbe sembrare disordinato.

È normale.

HTML è ciò di cui sono fatti i siti. A volte belli nel browser, terrificanti nel terminale.

Mostrare Solo gli Header

Per mostrare solo gli header HTTP, usa:

curl -I https://example.com

Potresti vedere:

HTTP/2 200
content-type: text/html
server: ...

Il codice di stato è importante.

Esempi comuni:

200 = OK
301 = spostato permanentemente
403 = vietato
404 = non trovato
500 = errore del server

Se lavori con siti o API, curl diventa la tua piccola macchina della verità.

I browser possono nascondere cose.

curl non si preoccupa dei sentimenti.

Controllare gli Indirizzi IP

Per vedere interfacce di rete e indirizzi IP, usa:

ip addr

Potresti vedere interfacce come:

lo
wlan0
eth0
enp3s0

Significati comuni:

Cerca qualcosa come:

inet 192.168.1.35/24

Questo è il tuo IP locale.

L’IP locale viene usato dentro la rete di casa o ufficio.

Di solito non è il tuo IP pubblico su internet.

Controllare la Route Predefinita

Per vedere dove passa il traffico di default, usa:

ip route

Potresti vedere:

default via 192.168.1.1 dev wlan0

Questo significa che il computer manda il traffico internet attraverso 192.168.1.1.

Di solito è il router.

Il router è quella piccola scatola che sembra semplice ma controlla segretamente tutta la tua vita digitale.

Controllare Porte Aperte con ss

Il comando ss mostra socket e connessioni di rete.

Per vedere porte TCP e UDP in ascolto:

ss -tuln

Potresti vedere:

Netid State  Local Address:Port
tcp   LISTEN 0.0.0.0:3000
tcp   LISTEN 127.0.0.1:5432

Questo mostra quali servizi stanno ascoltando.

Esempi:

Molto utile quando l’app dice:

“Server is running.”

ma il browser dice:

“No.”

Uno dei due mente.

ss ti aiuta a indagare.

Controllare Se un Server Locale Funziona

Se la tua app gira sulla porta 3000, prova:

curl http://localhost:3000

Oppure controlla le porte in ascolto:

ss -tuln | grep 3000

Se vedi un risultato, qualcosa sta ascoltando sulla porta 3000.

Se non vedi nulla, probabilmente il server non è avviato.

Il terminale ha parlato.

Freddamente, ma chiaramente.

Controllo DNS di Base

Per controllare se un dominio viene risolto, puoi usare:

getent hosts example.com

Potresti vedere:

93.184.216.34 example.com

Questo significa che il sistema riesce a risolvere il dominio.

Se fallisce, il problema potrebbe essere DNS.

I problemi DNS sono speciali: internet può funzionare, ma i nomi no.

È come avere un telefono ma dimenticare il nome di tutti.

Errori Comuni

Pensare che ping dimostri tutto

Alcuni server bloccano ping.

Quindi se questo fallisce:

ping -c 4 example.com

non significa sempre che il sito sia giù.

Prova anche:

curl -I https://example.com

Testa sempre in più modi.

La rete non è una sola porta.

È un palazzo con troppi corridoi.

Confondere IP locale e IP pubblico

Il tuo IP locale può essere:

192.168.1.35

Il tuo IP pubblico è quello visto da internet.

Non sono la stessa cosa.

Il router di solito sta in mezzo.

Come un buttafuori con luci lampeggianti.

Dimenticare che le porte contano

Un server può essere attivo, ma su una porta diversa.

Per esempio:

http://localhost:3000
http://localhost:8080
http://localhost:5173

Sono indirizzi diversi perché le porte sono diverse.

I numeri di porta contano.

Il browser non è telepatico.

Pratica

Prova questo:

ping -c 4 example.com
ping -c 4 1.1.1.1
curl -I https://example.com
ip addr
ip route
ss -tuln
getent hosts example.com

Poi rispondi:

  1. Cosa testa ping?
  2. Cosa mostra curl -I?
  3. Quale comando mostra gli indirizzi IP?
  4. Quale comando mostra la route predefinita?
  5. Quale comando mostra porte in ascolto?

Mini Sfida

Avvia un server di sviluppo locale, se ne hai uno.

Per esempio, in un progetto Next.js:

npm run dev

Poi, in un altro terminale:

ss -tuln | grep 3000
curl http://localhost:3000

Se la tua app usa un’altra porta, sostituisci 3000.

Congratulazioni.

Ora controlli il tuo server locale come una persona seria.

Progresso pericoloso.

Riassunto

Oggi hai imparato che:

La rete dal terminale è una competenza potente.

Ti aiuta a capire se il problema è nel codice, nel server, nel router, nel DNS o nella palude misteriosa chiamata “internet”.

Prossima Lezione

Nella prossima lezione parleremo di archivi e compressione.

Impacchetteremo file, li estrarremo e finalmente capiremo cosa sono quei .tar.gz.

Spoiler: non è pasta.