此netcat输出是什么意思?


11

当我发出nc -v命令时,虽然我得到以下信息,但我想通过telnet进入本地运行的VM,该VM在端口2628上运行有命令服务:

$ 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

Answers:


11

有几十个可用的netcat版本,但这可能是因为:

  1. 你有2个条目localhost/etc/hosts。一个用于IPv4,另一个用于IPv6。
  2. 守护程序仅侦听一种协议(可能是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

好的,如果这是正在发生的事情,我该如何解决?
Raul77 2014年

修复3个编号项目中的任何一个。1)从中删除条目之一/etc/hosts。2)使守护程序在两种协议上侦听。3)强制客户端使用其他协议进行连接。
帕特里克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.