L’errore “Connessione reimpostata dal peer” si verifica durante una connessione di rete quando l’altra estremità o il server chiude la connessione senza leggere i dati trasferiti. Il peer restituirà il pacchetto di dati inviato durante l’invio del bit RST (reset) e terminerà forzatamente la connessione.
Questo problema di solito si verifica se vieni bloccato dal firewall in qualsiasi punto del percorso. Ma può anche accadere per altri motivi. In questo articolo, menzioniamo diverse cause dell’errore insieme a come risolverlo in ogni scenario.
Sommario
Se volete continuare a leggere questo post su "[page_title]" cliccate sul pulsante "Mostra tutti" e potrete leggere il resto del contenuto gratuitamente. ebstomasborba.pt è un sito specializzato in Tecnologia, Notizie, Giochi e molti altri argomenti che potrebbero interessarvi. Se desiderate leggere altre informazioni simili a [page_title], continuate a navigare sul web e iscrivetevi alle notifiche del blog per non perdere le ultime novità.
Cause per la reimpostazione della connessione da parte del peer
Ecco alcuni dei potenziali motivi dell’errore “Connessione ripristinata dal peer”:
- Accesso bloccato dal firewall o dal file host.
- Il tuo IP bannato sul server host.
- Le impostazioni del server sono state modificate senza riavviare i demoni.
- Periodo di timeout ridotto per la connessione.
- Server occupato con connessioni massime.
- Bug nel programma utilizzato per impostare la connessione.
Come risolvere la reimpostazione della connessione tramite peer
Innanzitutto, assicurati che il tuo sistema non sia troppo occupato. Se hai un utilizzo elevato di CPU, memoria o rete, riscontrerai problemi durante la configurazione di una nuova connessione.
Inoltre, prova a riavviare la sessione e riprova a stabilire la connessione. Quindi passa alla possibile soluzione che abbiamo fornito di seguito.
La maggior parte dei passaggi che abbiamo citato sono per un server Linux basato su Debian. Se disponi di un altro sistema, puoi applicare passaggi simili cercando su Internet il processo esatto. Alcuni comandi variano anche tra i diversi sistemi Linux. Quindi fai attenzione anche a quelli.
Controlla i log
Innanzitutto, è necessario controllare i registri o i messaggi di errore per restringere il motivo dell’errore.
Se hai accesso al server, puoi controllare anche i log lato server.
Ad esempio, se riscontri questo problema durante la configurazione di una connessione ssh, devi controllare il file /var/log/auth.log. Fare così,
- Apri il Terminale.
- Immettere
tail -f /var/log/auth.log
.
Mostra le informazioni di registrazione inviate dal demone SSH durante i tentativi di autenticazione del sistema remoto.
Controlla la connettività Internet e il routing
La prossima cosa che dovresti fare è verificare la presenza di problemi di connettività Internet. Puoi verificare se il server pubblico o privato è andato inattivo utilizzando la ricerca IP o siti Web simili.
Puoi anche utilizzare use traceroute
o tracert
per tracciare il percorso tra i due endpoint e verificare quale punto di accesso sta ripristinando la tua connessione. La sintassi è:
- Su Linux:
traceroute [domain/IP]
- Su Windows:
tracert [domain/IP]
Se il server pubblico o i punti di accesso sono inattivi, è necessario attendere fino a quando non si riattivano. Per problemi con il server privato, puoi contattare l’amministratore di sistema o riavviarlo se hai accesso.
Controlla l’IP Ban
Uno dei motivi principali di questo problema durante la connessione ai server pubblici è che il tuo IP viene inserito nella lista nera dai principali fornitori di servizi di sicurezza. La maggior parte dei server pubblici vieta gli indirizzi IP mentre si conforma al database di questi server.
Per verificare se il tuo indirizzo IP è nella lista nera,
- Apri la pagina web di MX Toolbox Supertool.
- Imposta la casella a discesa gialla su Blacklist Check.
- Inserisci il tuo indirizzo IP nella casella di testo e fai clic su Blacklist Check. Se non conosci il tuo indirizzo IP, cerca “Qual è il mio IP” su Google.
Se il tuo IP è inserito nella lista nera su più reti di sicurezza, o su reti importanti come BARRACUDA, BLOCKLIST.DE, Nordspam BL, ecc., anche la maggior parte dei server o dei filtri di sicurezza ti bannerà.
L’unica cosa che puoi fare è parlare con il tuo ISP e fargli contattare l’amministratore del server per rimuovere il divieto.
Puoi anche provare a cambiare il tuo indirizzo IP utilizzando VPN per aggirare questo problema.
Controlla il firewall e i filtri di sicurezza della rete
L’errore “Connessione ripristinata dal peer” si verifica principalmente a causa dei firewall che bloccano l’accesso al server.
Se hai accesso al server privato a cui stai tentando di connetterti, puoi verificare se il firewall sta effettivamente bloccando l’accesso al tuo IP. Per farlo su Linux,
- Apri il Terminale
- Immettere
sudo iptables -L --line-number
- Controlla i tentativi di autenticazione del tuo indirizzo IP e controlla se il target accetta o rifiuta la connessione.
Puoi anche controllare altri filtri di sicurezza disponibili sul server. I passaggi possono variare tra i rispettivi programmi, quindi controlla il sito Web ufficiale o la documentazione per i metodi.
Quindi, devi autorizzare il tuo indirizzo IP su app di prevenzione delle intrusioni come Fail2ban, DenyHosts e così via, per fare eccezioni alle regole del firewall. I passaggi necessari per farlo su Fail2ban sono i seguenti:
- Apri il Terminale e inserisci
sudo nano /etc/fail2ban/jail.conf
- Rimuovere il simbolo # davanti a
ignoreip =
e aggiungere gli indirizzi IP desiderati sulla riga. - Ad esempio, la riga può essere
ignoreip = 10.10.10.8
- Salva ed esci.
Avviso: non sono consigliate pratiche come la disabilitazione del firewall o la creazione di eccezioni per tutti gli IP sul firewall. Esistono firewall e filtri di sicurezza per proteggere il tuo sistema. Quindi, piuttosto che compromettere la sicurezza, è meglio cercare una soluzione alternativa.
Riavvia servizi e demoni
Se riscontri questo problema su una rete privata, è possibile che l’amministratore del server abbia modificato le regole per la connessione senza riavviare i servizi daemon. Questo fa sì che i daemon del servizio si blocchino perché vogliono ancora conformarsi alle impostazioni precedenti.
- Contatta l’amministratore del server e chiedigli di riavviare il servizio e i demoni in tale scenario.
- Se hai accesso al server, puoi farlo da solo. Innanzitutto, verifica che i servizi e i demoni siano in esecuzione utilizzando il comando systemctl.
- Riavvia i demoni pertinenti. Il comando necessario per questo processo in un sistema basato su Debian è
sudo systemctl restart “daemon name”
Ad esempio, se stai configurando una connessione FTP utilizzando la condivisione samba, devi utilizzare il comando sudo systemctl restart smbd
. Poiché il servizio SSH è disponibile su quasi tutte le distribuzioni di Linux, non è necessario installare alcun pacchetto di servizio per esso. Quindi, per la connessione SSH, il comando è sudo systemctl restart ssh
.
E se stai utilizzando altri servizi di hosting per configurare la connessione, devi riavviare anche i loro demoni.
Modifica file host
I file host consentono di consentire o negare l’accesso a determinati indirizzi IP o nomi host. Se hai accesso al server, dovresti anche controllare questi file e assicurarti che il tuo indirizzo IP possa stabilire una connessione al server.
Per farlo per un sistema Debian,
- Apri il Terminale e inserisci
sudo nano /etc/hosts.deny
- Cerca il tuo IP locale o il nome host nel file.
- Se è presente, commentalo digitando # prima della riga. Puoi anche rimuovere del tutto la linea.
Puoi anche aggiungere il tuo indirizzo IP nel file hosts.allow
per forzare la connessione. Il processo è simile al precedente.
- Apri il Terminale e inserisci
sudo nano /etc/hosts.allow
. - Inserisci il tuo indirizzo IP usando la sintassi è
daemon_list : client_list [: command]
- Salva ed esci.
Il demone per FTP è solitamente vsftpd e per ssh, scp e sftp è sshd. Quindi, per consentire la connessione ssh con l’indirizzo locale, 10.10.10.8
, è necessario aggiungere sshd : 10.10.10.8 , LOCAL
È anche possibile modificare il file hosts su un server basato su Windows. Puoi fare riferimento al nostro articolo sulla modifica del file hosts su Windows per ulteriori informazioni sul processo necessario.
Aumenta il timeout o invia pacchetti Keepalive
Molti strumenti di rete eliminano le connessioni TCP e FTP inattive dopo un certo periodo di inattività.
Ci sono due modi per prevenire questo problema:
- Aumentare il periodo di timeout.
- Invia dati periodici sul battito cardiaco.
La prima opzione non è una buona soluzione. Mantenere il timeout lungo può influire sulle connessioni del server ad altre reti poiché devono attendere più a lungo prima di tentare di stabilire una connessione. È inoltre necessario aumentare il timeout su entrambe le estremità, il che non è sempre possibile.
Quindi, la soluzione migliore è inviare pacchetti heartbeat o keepalive regolari. Ciò impedisce che la connessione sia inattiva e mantiene attiva la sessione per un periodo più lungo.
Alcune connessioni consentono l’invio di pacchetti keepalive ma devi abilitare questo processo per altri. Ecco come abilitare il processo di invio di tali pacchetti:
Su Linux
- Apri il Terminale e inserisci
sudo nano /etc/sysctl.conf
- Aggiungi le seguenti righe mentre modifichi i valori (in secondi) in base alle tue preferenze:
-
net.ipv4.tcp_keepalive_time = 300
-
net.ipv4.tcp_keepalive_probes = 9
-
net.ipv4.tcp_keepalive_intvl = 10
-
- Salva ed esci.
- Immettere il comando
sysctl --load=/etc/sysctl.conf
Le righe precedenti specificano che il sistema attende 300 secondi prima di inviare il primo pacchetto keepalive. Quindi, continua a inviare il pacchetto ogni 10 secondi. Se non riceve il segnale ACK (riconoscimento) per 9 volte consecutive, la connessione viene interrotta.
L’aumento del periodo Keepalive per le connessioni SSH potrebbe compromettere la sicurezza in quanto rimane aperto per un tempo più lungo. Questa connessione dovrebbe essere molto sicura, quindi non è consigliabile apportare modifiche alle impostazioni keepalive per ssh.
Su Windows
- Apri Esegui e inserisci
regedit
. - Passare
ComputerHKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters
- Fare clic con il tasto destro su Parametri
- Aggiungi le seguenti voci DWORD insieme ai rispettivi valori (in millisecondi) come meglio credi:
- KeepAliveTime – 300000 (in decimale)
- KeepAliveInterval – 1000
- Per aggiungere una voce, fare clic con il pulsante destro del mouse su Parametro, selezionare Nuovo > Valore DWORD (32 bit) e immettere il nome.
- Quindi, fare doppio clic sulla voce per modificarne i dati Valore.
Nota: devi anche abilitare i pacchetti keepalive TCP nel tuo client TCP/FTP.
Controlla il file sshd_config
Il file sshd_config configura tutte le impostazioni utilizzate da una connessione SSH (Secure Shell). Quindi, se possibile, devi controllare questo file sul server e assicurarti che tutto sia a posto.
- Apri il file usando il comando
sudo nano /etc/ssh/sshd_config
. - Guarda le opzioni che abbiamo fornito di seguito e cambia di conseguenza. Puoi anche modificare altre opzioni a seconda della tua connessione. Si consiglia di consultare la documentazione di sshd_config per ulteriori informazioni.
- Dopo aver modificato questi valori, salva ed esci.
- Riavvia sshd usando il comando
sudo systemctl restart ssh
Alcune delle opzioni sono:
MaxStartup
Il valore MaxStartups determina il numero massimo di possibili connessioni non autenticate al daemon SSH prima che le connessioni inizino a interrompersi.
Ha il formato MaxStartups 10:30:100
, dove,
- 10: numero di connessioni non autenticate avviate dall’interruzione
- 30: Probabilità di abbandono dopo aver raggiunto il numero massimo di non autenticati
- 100: numero massimo di connessioni possibili prima di interromperle tutte
Se il tuo client remoto deve effettuare più connessioni contemporaneamente, devi modificare questi valori.
Sottosistema sftp
Su una connessione FTP sicura utilizzando il pacchetto openssh, il valore predefinito di Subsystem sftp è impostato su /usr/lib/openssh/sftp-server
. Tuttavia, a volte, il binario openssh è invece disponibile in /usr/lib/ssh/sftp-server
. Quindi puoi modificare questo valore e verificare se funziona. In caso contrario, ripristina il percorso precedente.
Clientevivo
ClientAlive è un’impostazione keepalive più sicura. È possibile modificare i valori ClientAliveInterval e ClientAliveCountMax in sshd_config per abilitare questa impostazione.
ClientAliveInterval determina l’intervallo di inattività dopo il quale sshd invia un messaggio crittografato al client. E ClientAliveCountMax determina il numero massimo di volte in cui sshd invia questo messaggio prima di interrompere la connessione se non riceve alcuna risposta.
Controlla il supporto per SSL
Se il server host ha abilitato SSL (Secure Sockets Layer) ma non hai abilitato questo servizio da parte tua, non puoi stabilire una connessione.
Quindi, devi verificare il supporto per SSL sul tuo TCP o qualsiasi altro client di rete e abilitarlo. Se non supporta SSL, è necessario utilizzare un altro client.
Devi anche controllare i tuoi certificati e assicurarti di non avere chiavi o certificati malformati.
Modifica il limite di connessione aperta
Stabilire una connessione di rete crea anche un socket, che è la finestra logica che il client utilizza per comunicare con il server. Tuttavia, un server ha un limite al numero di socket che può aprire contemporaneamente.
Se il server ha già raggiunto questo limite, qualsiasi nuova connessione fa sì che il server elimini le vecchie connessioni inattive. È possibile aggiornare o riavviare la sessione per rinnovare la sessione. Tuttavia, puoi anche aumentare il limite sul lato server per facilitare connessioni più aperte.
Se desideri modificare il limite solo per la sessione corrente, puoi utilizzare il comando ulimit -n 65535
, sostituendo il numero in base alle tue esigenze.
Per cambiarlo definitivamente,
- Apri il Terminale e inserisci
sudo nano /etc/security/limits.conf
- Aggiungi le seguenti righe mentre modifichi il valore del limite, se lo desideri:
-
* soft nofile 65535
-
* hard nofile 65535
-
- Salva ed esci. Quindi, riavvia i demoni e la sessione.
Per i sistemi Debian e Ubuntu, è necessario abilitare anche i limiti utente PAM. Fare così,
- Immettere sudo nano
/etc/pam.d/common-session
- Aggiungi
required pam_limits.so
- Aggiungi questo comando anche su
/etc/pam.d/common-session-noninteractive
. - Se stai usando una connessione SSH, aggiungi la riga a
/etc/pam.d/sshd
Eseguire il debug degli script e delle configurazioni
Molti utenti hanno riscontrato questo problema durante la creazione delle proprie applicazioni di connessione. In tale scenario, eventuali bug negli script o nella configurazione che chiudono inutilmente la connessione o non conformano la connessione al protocollo causeranno questo errore.
Pertanto, ti consigliamo di esaminare attentamente il programma. Alcuni protocolli hanno comandi di chiusura o di chiusura che fanno sì che il server host chiuda la connessione.
È inoltre necessario chiudere tutti i processi figlio biforcuti prima di uscire per impedire i processi zombie. I processi zombie rimangono nella tabella dei processi anche dopo aver terminato il figlio. Se ci sono troppi processi zombie, la tabella dei processi si riempie. In questo modo il sistema non riesce a creare nuovi processi, interrompendo la connessione.
Se hai problemi a eseguire il debug del tuo programma, ti consigliamo di ottenere assistenza da forum tecnici come StackOverflow mentre fornisci il codice sorgente.