Connection Refused: cosa significa e come risolvere

Argomenti:
Pubblicato il: 22-01-2021 10:47 , Ultimo aggiornamento: 10-02-2021 17:53

Spiegazione generale connection refused

L’errore informatico

connection refused

si riconduce ad un problema di connessione rifiutata, che è anche la traduzione del messaggio dall’inglese all’italiano. A livello tecnico, l’errore indica che il sistema operativo, lato socket in ascolto, ha riconosciuto la richiesta di connessione in ingresso, ma ha scelto di rifiutarla volutamente (ad esempio per via di una policy interna, perchè ci sono troppe connessioni attive e così via).

Supponendo che un firewall intermedio non si metta in mezzo (cosa che possiamo verificare con netstat, come vedremo), ci sono solo due ragioni principali per cui il sistema operativo potrebbe rifiutare una richiesta di connessione in entrata: la porta di ascolto a cui ci si collega non è aperta o non è disponibile o, ancora, è sovraccarica. Altro motivo che porta all’errore in questione è che la porta di ascolto è effettivamente aperta e utilizzata attivamente, ed il suo backlog di richieste di connessione in entrata in coda ha raggiunto il suo massimo, quindi non c’è spazio disponibile per la richiesta di connessione in entrata da mettere in coda in quel momento.

SMSHosting Usa il codice PROMO per uno sconto sul primo acquisto: PRT96919

A quanto pare non c’è modo di distinguere tra “la porta non è aperta” e “la porta è aperta, ma al momento è occupata“, dato che sempre come connection refused verrà notificata. La soluzione più ovvia in queste situazioni è quella di attendere un po’ prima di riconnettersi, oppure provare a connettersi con un IP differente oppure, ancora, connettersi utilizzare un server proxy.

Spiegazione approfondita connection refused

Lato tecnico, un connection refused si verifica generalmente in tre situazioni possibili, distinte tra loro:

  1. la porta a cui stiamo provando a connetterci è bloccata, ad esempio da un firewall;
  2. non c’è nessuno in ascolto sull’IP e sulla porta indicata;
  3. ci sono troppe connessioni su quella porta e su quel server, e per questo non ne vengono accettate più (può avvenire se ad esempio veniamo bannati temporaneamente per accessi troppo rapidi, oppure se la connessione è satura o abbiamo sforato il limite delle 25 connessioni simultanee)

Se siamo nel caso 1, ce ne accorgiamo facilmente sfrttando il comando netstat da terminale: se diamo il comando da Mac

sudo netstat -tnlp tcp | grep '\.22322 '

oppure su Linux

ss -tnlp | grep :22322

e non viene restituito nulla, il problema è stato individuato sulla porta (giusto a mo’ di esempio) 22322. Se invece siamo nel caso 2, è possibile che il servizio vada riconfigurato oppure debba proprio essere installato (in quest’ultimo caso vedremo un unrecognized service).

Connection refused su SSH

Un caso particolare di connessione rifiutata può avvenire durante una connessione su SSH: ci sono moltissimi casi assimilabili a questa situazione, in questi casi, ma in genere l’impossibilità di connettersi può essere determinata, ad esempio, da una chiave pubblica che non viene riconosciuta correttamente.

Se ad esempio proviamo a connetterci con chiave nel file .pem contenuta nella cartella documents, entrando come root sull’indirizzo IP del server:

ssh -i ~/Documents/chiave.pem [email protected]_IP

è possibile che si presenti l’errore permission denied (publickey), il che significa che la chiave pubblica non viene riconosciuta, ma anche che potrebbe esserci un problema con la chiave privata, in realtà. Questo può capitare ad esempio se da un PC riesco ad accedere con chiave.pem e con un altro PC invece no, oppure (se ci connettiamo via Amazon AWS, ad esempio) se l’IP del nostro computer non è stato correttamente abilitato, oppure è stato bannato per qualche motivo. La cosa più semplice da fare in questi casi è quella di rigenerare da zero, per un nuovo accesso, la coppia di chiavi pubblica e private.

Altri casi di connection refused riguardano un errore nella scelta della porta di accesso, che non per tutti i server è la 22 (Siteground ad esempio ne usa un’altra non standard, e bisogna specifica per forza quella corretta, andandola a cercare nella documentazione del sito).

Photo by Oskar Yildiz on Unsplash

Nessun voto disponibile

Che te ne pare?

Grazie per aver letto Connection Refused: cosa significa e come risolvere di Salvatore Capolupo su Trovalost.it
Connection Refused: cosa significa e come risolvere (Guide, Errori più comuni)

Articoli più letti su questi argomenti:

Seguici su Telegram: @trovalost