risposta-alla-domanda-sullo-sviluppo-web-bd.com

Cosa causa il messaggio "Connessione rifiutata"?

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 ?

119
user9517

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:

  1. Niente è in ascolto sull'IP: porta alla quale si sta tentando di connettersi.
  2. La porta è bloccata da un firewall.

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.

129
user9517

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).

5
SharpC

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.

0
Mike Ross