Cosa significa questo output netcat?


11

Voglio telnet nella mia VM in esecuzione localmente che ha un servizio dictd in esecuzione sulla porta 2628, quando invio il mio comando nc -v anche se ottengo il seguente:

$ nc -v localhost 2628
nc: connectx to localhost port 2628 (tcp) failed: Connection refused
found 0 associations
found 1 connections:
     1: flags=82<CONNECTED,PREFERRED>
    outif lo0
    src 127.0.0.1 port 63929
    dst 127.0.0.1 port 2628
    rank info not available
    TCP aux info available

Connection to localhost port 2628 [tcp/dict] succeeded!

Perché viene rifiutata una connessione e successivamente una connessione è riuscita? Che cosa significa questo e perché non accetta la mia connessione quando faccio e basta: telnet localhost 2628?

Risposte:


11

Sono disponibili alcune dozzine di versioni di netcat, ma è probabile che:

  1. Hai 2 voci per localhostin /etc/hosts. Uno per IPv4, un altro per IPv6.
  2. Il demone è in ascolto solo su un protocollo (probabilmente IPv4).
  3. Il client si connette prima tramite il protocollo su cui il demone non è in ascolto, quindi prova quello che è.

Per esempio:

$ grep localhost /etc/hosts
127.0.0.1 localhost
::1 localhost

$ nc -4 -l -p 9000 -s 127.0.0.1     
nc: listening on 127.0.0.1 9000 ...


$ nc localhost 9000
nc: cannot connect to localhost (::1) 9000 [9000]: Connection refused
nc: localhost (127.0.0.1) 9000 [9000] open
nc: using stream socket

Ok, se questo è ciò che sta accadendo, come posso risolverlo?
Raul77,

Correggi uno dei 3 elementi numerati. 1) rimuovere una delle voci da /etc/hosts. 2) far ascoltare il demone su entrambi i protocolli. 3) forzare il client a connettersi utilizzando l'altro protocollo.
Patrick,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.