Risoluzione dei problemi di rete su VPS: ping, traceroute, log e routing
Gestire un server VPS può coinvolgere scenari di rete complessi e gravi, come perdita di pacchetti, alta latenza, mancata raggiungibilità o problemi di routing.
Con questa guida vedremo come diagnosticare e risolvere i problemi di rete su una VPS Linux (Ubuntu, Debian, AlmaLinux, CentOS/Rocky) con strumenti di base e avanzati.
Perché diagnosticare i problemi di rete
Quando un server non risponde o ha connessioni lente, la causa può essere:
- un problema di accessibilità alla VPS
- un errore di routing o gateway
- un firewall che blocca pacchetti o porte
- risoluzione DNS non corretta
- perdita di pacchetti sulla rete
Diagnosticare correttamente serve a evitare tentativi di fix a caso e ti permette di intervenire con precisione, individuando il problema alla fonte.
Verificare con Ping la connettività base
Il comando ping è lo strumento fondamentale per verificare se un host è raggiungibile e misurare la latenza.
Si basa sui pacchetti ICMP echo-request e echo-reply, è il primo passaggio per capire se esiste connettività tra la tua macchina e il server VPS.
ping -c 4 8.8.8.8
Questo invia 4 pacchetti a Google DNS.
Se ricevi risposte con time=XX ms significa che la connessione di base funziona.
Se vedi continui timeout o elevata latenza, prosegui con altri test.
Analizzare il percorso con Traceroute o Tracepath
Se ping funziona ma alcune applicazioni no, può esserci un problema lungo il percorso tra te e il server.
Il comando traceroute mostra ogni “hop” che i pacchetti attraversano per raggiungere la destinazione.
traceroute example.com
Ogni riga rappresenta un router/interfaccia sulla linea. Se ci sono timeout o latenze altissime a un certo hop, puoi identificare un possibile punto di congestione o blocco.
Alternative semplificata:
tracepath example.com
Usare MTR per analisi dinamica (Ping + Traceroute)
MTR (My Traceroute) combina ping e traceroute, mostrando sia la latenza che la perdita pacchetti in tempo reale per ciascun hop lungo il percorso, cosa utile per capire dove si verifica un problema di connessione.
Per installare MTR:
Debian/Ubuntu:
sudo apt install mtr
AlmaLinux/CentOS:
sudo dnf install mtr
Successivamente, eseguire il comando:
mtr --report example.com
Controllare la tabella di routing
Se il server non riesce a connettersi, può essere perché manca una route corretta.
La tabella di routing mostra dove vengono inviati i pacchetti:
ip route show
L’output tipico mostra la default route e le subnet conosciute.
Se la default route manca, il server non saprà dove inviare traffico verso Internet.
In questo caso puoi aggiungerla così:
sudo ip route add default via dev
Verificare gli indirizzi IP e le interfacce
Per controllare le interfacce e gli indirizzi assegnati:
ip addr show
Oppure, in alternativa:
ifconfig
Questi comandi mostrano quali interfacce sono attive e quali indirizzi hanno, permettendoti di determinare se il server sta usando l’IP corretto.
Diagnosticare DNS e risoluzione dei nomi
Spesso i problemi di rete sono causati da errori di DNS. Per verificare la risoluzione dei nomi:
dig +short example.com
nslookup example.com
Se questi comandi non restituiscono un IP coerente o non rispondono, è probabile che i server DNS configurati non siano raggiungibili o non siano corretti.
Analizzare i log di sistema per errori di rete
I log possono indicare problemi di rete o servizi che non partono correttamente.
sudo journalctl -u NetworkManager
sudo journalctl -u networking
Per visualizzare tutte le attività di rete (incluse le interfacce):
sudo journalctl -k | grep -i network
Controllare il gateway predefinito
Il gateway è l’indirizzo verso cui vengono inviati i pacchetti verso Internet.
Assicurati che sia corretto con:
ip route show
Se vedi qualcosa come:
default via 192.168.1.1 dev eth0
significa che tutto il traffico non locale va verso 192.168.1.1.
Se la default route è sbagliata o assente, correggila (come mostrato sopra).
Utilizzare strumenti avanzati
Quando gli strumenti di base non sono sufficenti, puoi approfondire con questi ulteriori 3 comandi:
- ss / netstat → mostra socket e porte in ascolto (ss -tuln)
- tcpdump → cattura pacchetti per analisi dettagliata (sudo tcpdump -i eth0)
- iperf → test di throughput tra due host
Questi strumenti richiedono esperienza ma sono molto potenti per isolare problemi di basso livello.
Risoluzione degli errori più comuni
- Connessione riuscita con ping ma non con TCP/HTTP: Significa spesso che il firewall blocca il traffico o la porta non è aperta.
- Ping non risponde ma il servizio funziona:
Alcuni provider o firewall bloccano ICMP. Prova a verificare un servizio TCP con:
nc -vz <host> <porta> - DNS non risolve nomi esterni:
Controlla
/etc/resolv.confe assicurati che i DNS siano raggiungibili.