このnetcat出力はどういう意味ですか?

このnetcat出力はどういう意味ですか?

nc -vコマンドを実行すると、ポート2628でdictdサービスを実行しているローカルで実行されている仮想マシンにTelnetで接続しようとします。ただし、次のような結果が表示されます。

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

接続が拒否され、正常に接続されるのはなぜですか?これが何を意味するのか、そして次のような場合に私の接続を受け入れないのはなぜですかtelnet localhost 2628

ベストアンサー1

利用可能なnetcatバージョンは数十種類ありますが、その理由は次のとおりです。

  1. localhostには2つの項目があります/etc/hosts。 1つはIPv4用、もう1つはIPv6用です。
  2. デーモンは1つのプロトコル(おそらくIPv4)のみを受け取ります。
  3. クライアントは、まずデーモンがリッスンしていないプロトコルを介して接続し、デーモンが使用しているプロトコルを試みます。

たとえば、

$ 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

おすすめ記事