Vraag Wat veroorzaakt het bericht 'Connection Refused'?


Dit is een Canonical Question wat betreft Verbinding geweigerd 

We zien veel vragen over het effect

Wanneer ik verbinding probeer te maken met een systeem, krijg ik een bericht

Verbinding geweigerd

Waarom is dit ?


75
2017-09-28 12:13


oorsprong


We krijgen dit veel in Apache Hadoop, waar het vaak wordt veroorzaakt door configuratiefouten in de client: met welke host om mee te praten, wat hun DNS- of / etc / host-tabellen zijn, of een mismatch tussen de poorten die worden gebruikt door een service en die de klanten denken te moeten gebruiken. Dienovereenkomstig hebben we een speciale wiki-vermelding over het onderwerp. Veel van de problemen zijn waarschijnlijk elders, zij het (hopelijk) op kleinere schaal. Het oplossen van verbindingsproblemen in een cluster met 1000 knooppunten is niet leuk. - Steve Loughran
Uw speciale link voor het wiki-item wijst naar deze vraag;) - Iain
goede vangst. Hier is de officiële link: wiki.apache.org/hadoop/ConnectionRefused. Ik zal hier echter een kruisverwijzing van daar naar hier voor die volledige lus toevoegen. - Steve Loughran
@SteveLoughran Cool-artikel - één opmerking - de link terug zegt Stack Overflow en we zijn Server Fault;) - Iain
gedaan. FWIW, die wikilink wordt toegevoegd aan ConnectionRefused-uitzonderingen die zijn doorgegeven in de Hadoop-stack, samen met de extra info (hosts, poorten) die nodig is om uit te zoeken wat er mis gaat. We krijgen nog steeds veel bugrapporten van mensen die de stacktracering zien en niet de link naar de wiki volgen - Steve Loughran


antwoorden:


Notitie: Dit bericht is een symptoom van het probleem dat u probeert op te lossen. Als u de oorzaak van het bericht begrijpt, leidt dit uiteindelijk tot het oplossen van uw probleem.

Het bericht 'Connection Refused' heeft twee hoofdoorzaken:

  1. Er is niets aan het luisteren op het IP-adres: de poort waarmee u verbinding probeert te maken.
  2. De poort wordt geblokkeerd door een firewall.

Geen enkel proces luistert.

Dit is veruit de meest voorkomende reden voor het bericht. Zorg er eerst voor dat u probeert verbinding te maken met het juiste systeem. Als u vervolgens wilt vaststellen of dit het probleem is, voert u op de externe systeemrun uit netstat of ss1 bijv. als u verwacht dat een proces luistert naar poort 22222

sudo netstat -tnlp | grep :22222

of

ss -tnlp | grep :22222

Voor OSX is een geschikte opdracht

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

Als er niets luistert, produceert het bovenstaande geen uitvoer. Als u wat uitvoer ziet, bevestig dan dat dit is wat u verwacht, zie het onderstaande firewallgedeelte.

Als u geen toegang hebt tot het externe systeem en u wilt het probleem bevestigen voordat u het rapporteert aan de relevante beheerders, dan kunt u tcpdump (wireshark of vergelijkbaar) gebruiken.

Wanneer een verbinding wordt geprobeerd naar een IP: poort waar niets luistert, is de reactie van het externe systeem op het initiële SYN-pakket een pakket met de vlaggen RST, ACK ingesteld. Dit sluit de verbinding af en veroorzaakt het bericht Verbonden weigering bijv.

$ sudo tcpdump -n host 192.0.2.1 en poort 22222
  tcpdump: uitgebreide uitvoer onderdrukt, gebruik -v of -vv voor volledige protocoldecodering
  luisteren op enp14s0, link-type EN10MB (Ethernet), capture-grootte 262144 bytes

  12: 31: 27.013976 IP 192.0.2.2.34390> 192.0.2.1.22222: Vlaggen [S], volg 1207858804, win 29200, opties [mss 1460, sackOK, TS val 15306344 ecr 0, nop, wscale 7], lengte 0

  12: 31: 27.020162 IP 192.0.2.1.22222> 192.0.2.2.34390: vlaggen [R.], volg 0, ack 1207858805, win 0, lengte 0

Merk op dat tcpdump a gebruikt . naar vertegenwoordigen de ACK vlag.

Poort wordt geblokkeerd door een firewall

Als de poort wordt geblokkeerd door een firewall en de firewall is geconfigureerd om te reageren icmp-port-unreachable hierdoor wordt ook een geweigerd bericht geweigerd. Je kunt dit opnieuw zien met tcpdump (of vergelijkbaar)

$ sudo tcpdump -n icmp
  tcpdump: uitgebreide uitvoer onderdrukt, gebruik -v of -vv voor volledige protocoldecodering

  luisteren op enp14s0, link-type EN10MB (Ethernet), capture-grootte 262144 bytes   13: 03: 24.149897 IP 192.0.2.1> 192.0.2.2: ICMP 192.0.2.1 tcp-poort 22222 onbereikbaar, lengte 68

Merk op dat dit ons ook vertelt waar de blokkerende firewall is.


Dus nu weet je wat de oorzaak is van het bericht Connection geweigerd en moet je de juiste actie ondernemen, bijvoorbeeld neem contact op met de firewallbeheerder of onderzoek de reden waarom het proces niet luistert.

1Andere tools zijn waarschijnlijk beschikbaar.


87
2017-09-28 12:13



ELI5-versie: dit betekent dat het verbindingsverzoek op de andere computer is terechtgekomen en dat de andere computer geen idee heeft waar je het over had. - immibis
"Geen proces luistert." De belangrijkste reden ..! - Samitha Chathuranga
In mijn geval was er iets aan het luisteren ... maar op een ander knooppunt waarmee ik probeerde verbinding te maken. Oeps. - ijoseph
@ijoseph Dus toen luisterde niets. - Iain
@Ik wil een boom niet in het bos laten vallen en het bos is helemaal stil, luisteren de andere bomen? - ijoseph


Voor mij op Debian 6 squeeze was het zo simpel als het controleren van de SSH-service:

sudo service ssh status

En het vinden van niets bestond (met de boodschap ssh: unrecognized service) net installatie van de service:

sudo apt-get install openssh-server

Dit werkt ook als u geen SFTP-verbinding krijgt, omdat SFTP een subset van SSH is (terwijl FTPS een subset van FTP is).


4
2018-05-16 09:39





Mijn Centos Shorewall-firewall had geen schijfruimte meer. verwarrend, sommige sites, zoals youtube en MS werkten. Anderen zoals cnn.com zijn mislukt. Het opruimen van wat ruimte en het herstarten van de server loste het probleem voor mij op.


0
2017-11-03 13:19