Questa è una domanda canonica about Connessione rifiutata
Vediamo molte domande sull'effetto
Quando provo a connettermi a un sistema ricevo un messaggio
Connessione rifiutata
Perchè è questo ?
Nota : questo messaggio è un sintomo del problema che si sta tentando di risolvere. Comprendere la causa del messaggio alla fine ti porterà a risolvere il tuo problema.
Il messaggio "Connessione rifiutata" ha due cause principali:
Nessun processo è in ascolto.
Questo è di gran lunga il motivo più comune per il messaggio. Assicurati innanzitutto di provare a connetterti al sistema corretto. Se si deve quindi determinare se questo è il problema, sul sistema remoto eseguire netstat o ss1 per esempio. se ti aspetti un processo in ascolto sulla porta 22222
Sudo netstat -tnlp | grep :22222
o
ss -tnlp | grep :22222
Per OSX è un comando adatto
Sudo netstat -tnlp tcp | grep '\.80 '
Se nulla è in ascolto, quanto sopra non produrrà alcun output. Se vedi qualche output, conferma che è quello che ti aspetti, quindi vedi la sezione firewall qui sotto.
Se non si ha accesso al sistema remoto e si desidera confermare il problema prima di segnalarlo agli amministratori competenti, è possibile utilizzare tcpdump (WireShark o simile).
Quando si tenta una connessione a un IP: porta in cui nulla è in ascolto, la risposta dal sistema remoto al pacchetto SYN iniziale è un pacchetto con i flag RST, ACK impostati. Ciò chiude la connessione e provoca il messaggio Connessione rifiutata, ad es.
$ Sudo tcpdump -n Host 192.0.2.1 e porta 22222
tcpdump: soppressione dell'output dettagliato, utilizzare -v o -vv per la decodifica del protocollo completo
ascolto su enp14s0, tipo di collegamento EN10MB (Ethernet), dimensione di acquisizione 262144 byte
12: 31: 27.013976 IP 192.0.2.2.34390> 192.0.2.1.22222: Flags [S] , seq 1207858804, vittoria 29200, opzioni [mss 1460, saccoOK, TS val 15306344 ecr 0, nop, wscale 7], lunghezza 0
12: 31: 27.020162 IP 192.0.2.1.22222> 192.0.2.2.34390: Flag [R.] , seq 0, ack 1207858805, vittoria 0, lunghezza 0
Si noti che tcpdump utilizza un flag . a rappresenta l'ACK .
La porta è bloccata da un firewall
Se la porta è bloccata da un firewall e il firewall è stato configurato per rispondere con icmp-port-unreachable
questo causerà anche un messaggio di connessione rifiutata. Ancora una volta puoi vederlo con tcpdump (o simile)
$ Sudo tcpdump -n icmp
tcpdump: soppressione dell'output dettagliato, utilizzare -v o -vv per la decodifica del protocollo completo
ascolto su enp14s0, tipo di collegamento EN10MB (Ethernet), dimensione di acquisizione 262144 byte 13: 03: 24.149897 IP 192.0.2.1> 192.0.2.2: ICMP 192.0.2.1 tcp port 22222 irraggiungibile, lunghezza 68
Nota che questo ci dice anche dove si trova il firewall di blocco.
Quindi ora sai cosa sta causando il messaggio di rifiuto della connessione, dovresti prendere le misure appropriate, ad es. contattare l'amministratore del firewall o verificare il motivo per cui il processo non è in ascolto.
1 Altri strumenti sono probabilmente disponibili.
Per me su Debian 6 squeeze era semplice come controllare il servizio SSH :
Sudo service ssh status
E non trovando nulla esisteva (con il messaggio ssh: unrecognized service
) solo installazione del servizio :
Sudo apt-get install openssh-server
Questo funziona anche se non si ottiene una connessione SFTP, poiché SFTP è un sottoinsieme di SSH (mentre FTPS è un sottoinsieme di FTP).
Il mio firewall Centos Shorewall ha esaurito lo spazio su disco. in modo confuso, alcuni siti, come YouTube e MS, hanno funzionato. Altri come cnn.com hanno fallito. Liberare spazio e riavviare il server ha risolto il problema per me.