You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ncat echo server将接收到的消息打印到终端后再回传?

原命令失效原因

  • ncat 的 -e 参数执行的命令,标准输入、标准输出会直接绑定到TCP连接流,和你启动ncat的本地终端无关联,所以tee的输出全部走了网络链路,不会打印到本地
  • 你使用的进程替换语法> (/bin/cat)是shell专属特性,-e后的参数是直接调用exec执行的,不会经过shell预处理,因此语法不生效

可直接使用的实现方法

方法1:使用-c参数调用shell执行(最简方案)

ncat的-c参数会自动启动shell解析后续命令,我们只需要让tee将收到的内容复制一份输出到ncat的标准错误流(默认绑定到启动命令的本地终端)即可:

ncat -l -p 2048 -c 'tee /dev/stderr'

运行逻辑:

  • 对端发送的内容会作为tee的标准输入
  • tee将输入输出到标准输出,直接回传给对端
  • 同时tee将内容复制一份写入/dev/stderr,打印到本地启动终端

方法2:用命名管道实现(无-c/-e权限时可用)

如果你的ncat版本禁用了执行类参数,可以用命名管道搭建流回路实现:

# 第一步:创建命名管道
mkfifo echo_pipe
# 第二步:启动echo服务
cat echo_pipe | ncat -l -p 2048 | tee /dev/tty > echo_pipe
# 使用结束后删除管道即可
rm echo_pipe

测试方式

另开一个终端执行ncat 127.0.0.1 2048,输入任意内容发送,即可在发送端收到回显,同时服务端终端会打印收到的内容。


内容的提问来源于stack exchange,提问作者Bob R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:54:04