nc 工具未在 localhost 的 busybox 上显示任何输出

nc 工具未在 localhost 的 busybox 上显示任何输出

知道为什么在基于 busybox 的容器镜像上运行时没有显示任何内容吗?尝试连接到/nc上的端口时出现问题。127.0.0.1localhost

/app # nc -v 127.0.0.1 12345
/app # nc -v localhost 12345
/app # nc
BusyBox v1.35.0 (2022-08-01 15:14:44 UTC) multi-call binary.

Usage: nc [OPTIONS] HOST PORT  - connect
nc [OPTIONS] -l -p PORT [HOST] [PORT]  - listen
...

我希望看到是否nc已连接。在普通的 Ubuntu 上,该命令会输出成功或不成功的连接,如下所示。在 busybox 上,我不知道发生了什么,因为没有输出任何内容。 在此处输入图片描述

答案1

大多数 Linux/Unix 程序除非发生错误,否则不会发出任何信息。这是因为相同的程序通常也用于编写脚本。请参阅https://en.wikipedia.org/wiki/Unix_philosophy 此外,BusyBox 在设计上非常安静,并尽量避免使用大文本。

但是您可以检查程序使用$?命令返回的错误代码。

$ busybox httpd -p 8080
$ busybox nc 127.0.0.1 8081
nc: can't connect to remote host (127.0.0.1): Connection refused
$ echo $?
1
$ busybox nc 127.0.0.1 8080
^C
$ echo $?
130

这里我在端口 8080 上启动了 httpd。然后执行了 nc,但失败了,错误代码为 1。再次在 8080 端口上启动 nc,成功了,没有显示任何信息。但我中断了它,所以退出代码是 130:

相关内容