为什么命令 nc 的管道内容不起作用?

Div*_*nto 5 pipeline netcat apache-zookeeper

我尝试通过使用从 shell 获取 zookeeper 统计信息nc

nc localhost 2181先打电话,然后输入:stat有效。

echo "stat" | nc localhost 2181什么都不返回。

为什么?

Div*_*nto 5

在 Zookeeper 邮件列表中问了同样的问题,得到了这个:

很可能您使用了错误的“nc”命令。

不是开玩笑:P 有两个不同的“nc”包,而且语法不同。在类似 debian 的发行版中,它们是 netcat-openbsd 和 netcat-traditional,但是我在 CentOS 中遇到了与 netcat 相同的问题(我不记得软件包的名称,抱歉),直到我意识到我使用它是错误的。

——托马斯·努涅斯

我发现我服务器上的nc是nc.openbsd,安装nc.traditional后,

echo "stat" | nc.traditional 10.18.10.30 2181

返回预期的结果。