澄清netcat结果

Dou*_*McK 4 ubuntu nginx netcat

我一直试图在我们的服务器上调试一个问题,但我对 netcat 的这个响应感到困惑。谁能解释为什么我在检查端口是否正常工作时收到这两条相互矛盾的消息?是否无法通过 TCP 连接,然后使用其他方法 (*) 成功?

ubuntu@1-2-3-4:/var/log$ nc -vz localhost 7777
nc: connect to localhost port 7777 (tcp) failed: Connection refused
Connection to localhost 7777 port [tcp/*] succeeded!
Run Code Online (Sandbox Code Playgroud)

IP4/6 结果

nc -vz4 localhost 7777
Connection to localhost 7777 port [tcp/*] succeeded!
nc -vz6 localhost 7777
nc: connect to localhost port 7777 (tcp) failed: Connection refused
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 5

发生这种情况是因为您的守护程序仅侦听 IPv4。

IPv6 是默认协议,因此如果给定的主机名同时具有 IPv4 和 IPv6 地址,则始终首先尝试 IPv6 地址。

在您的情况下,localhost具有 IPv4 地址127.0.0.1和 IPv6 地址::1。但是你的守护进程只在监听127.0.0.1.

因此,当nc尝试连接到localhost它时,首先连接到::1,发现没有任何东西在侦听,并返回Connection refused。然后它会尝试连接127.0.0.1并找到您的守护进程。