O que significa esta saída netcat?

11

Eu quero fazer o telnet em minha VM localmente em execução, que tem um serviço dictd em execução na porta 2628, quando emito meu comando nc -v, embora receba o seguinte:

$ 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!

Por que há uma conexão recusada e, posteriormente, uma conexão foi bem-sucedida? O que isso significa e por que não aceita minha conexão quando eu faço isso: telnet localhost 2628 ?

    
por Raul77 03.09.2014 / 02:21

1 resposta

11

Existem algumas dezenas de versões do netcat disponíveis, mas isso é provável porque:

  1. Você tem duas entradas para localhost em /etc/hosts . Um para IPv4, outro para IPv6.
  2. O daemon está apenas ouvindo em um protocolo (provável IPv4).
  3. O cliente conecta-se primeiro através do protocolo que o daemon não está escutando e, em seguida, tenta o que é.

Por exemplo:

$ 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
    
por 03.09.2014 / 02:45

Tags