Questa è una domanda canonica sulla connessione rifiutata
Vediamo molte domande sull'effetto
Quando provo a connettermi a un sistema ricevo un messaggio
connessione rifiutata
Perchè è questo ?
Questa è una domanda canonica sulla connessione rifiutata
Vediamo molte domande sull'effetto
Quando provo a connettermi a un sistema ricevo un messaggio
connessione rifiutata
Perchè è questo ?
Risposte:
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 ss 1, ad esempio se si prevede che un processo sia 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 interessati, è 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 ad es. Il messaggio Connessione rifiutata
$ sudo tcpdump -n host 192.0.2.1 e porta 22222
tcpdump: soppressione dell'output dettagliato, utilizzo -v o -vv per l'
ascolto della decodifica del protocollo completo 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, win 29200, opzioni [mss 1460, sackOK, 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: Bandiere [R.] , seq 0, ack 1207858805, vittoria 0, lunghezza 0
Si noti che tcpdump utilizza a . per rappresentare la bandiera ACK .
La porta è bloccata da un firewall
Se la porta è bloccata da un firewall e il firewall è stato configurato per rispondere, icmp-port-unreachable
ciò causerà anche un messaggio di rifiuto della connessione. Ancora una volta puoi vederlo con tcpdump (o simile)
$ sudo tcpdump -n icmp
tcpdump: soppressione dell'output dettagliato, utilizzo -v o -vv per l'
ascolto della decodifica del protocollo completo 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: porta ICMP 192.0.2.1 tcp 22222 non raggiungibile, 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 esempio contattare l'amministratore del firewall o indagare sul motivo per cui il processo non è in ascolto.
1 Altri strumenti sono probabilmente disponibili.
Per me su Debian 6 squeeze è stato semplice come controllare il servizio SSH :
sudo service ssh status
E trovando nulla esisteva (con il messaggio ssh: unrecognized service
) solo l' 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).