Bu netcat çıktısı ne anlama geliyor?


11

Ben nc -v komutunu aşağıdaki olsa olsun ben bağlantı noktası 2628 üzerinde çalışan bir dictd hizmeti olan yerel olarak çalışan VM içine telnet istiyorum:

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

Neden bir bağlantı reddedildi ve daha sonra bir bağlantı başarılı oldu? Bu ne anlama geliyor ve ben sadece ne zaman neden benim bağlantıyı kabul olmaz: telnet localhost 2628?

Yanıtlar:


11

Netcat'in birkaç düzine sürümü var, ancak bunun nedeni büyük olasılıkla:

  1. Sen 2 girdilerine sahip localhostiçinde /etc/hosts. Biri IPv4 için, diğeri IPv6 için.
  2. Arka plan programı yalnızca bir protokolü dinliyor (büyük olasılıkla IPv4).
  3. İstemci ilk önce arka plan programının dinlemediği protokol üzerinden bağlanır ve ardından olduğu protokolü dener.

Örneğin:

$ 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

Tamam, eğer olan bu ise, nasıl düzeltebilirim?
Raul77

3 numaralı öğeden herhangi birini düzeltin. 1) girişlerden birini kaldırın /etc/hosts. 2) Daemon'u her iki protokolde de dinletir. 3) istemciyi diğer protokolü kullanarak bağlanmaya zorlayın.
Patrick
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.