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

如何将字符串通过管道传入netcat并保持连接开启?

解决方案:发送字符串后保持Netcat连接开启

我明白你的痛点——用管道把echo输出传给netcat时,echo一结束连接就断了对吧?这是因为echo执行完会关闭标准输出,netcat检测到输入流终止就会主动退出。在Ubuntu 16.04上,你可以用这几种方法解决:

  • 方法一:发送字符串后支持手动继续输入
    这个方法会先发送指定字符串,之后允许你在终端继续输入内容发送给服务器,同时保持连接不中断:

    (echo "你要发送的目标字符串"; cat) | nc 远程服务器IP 端口号
    

    解释:括号里的子shell先执行echo发送初始字符串,接着cat会持续读取你的终端输入(直到你按Ctrl+C终止命令),这样netcat的输入流始终处于开启状态,连接就能一直保持。

  • 方法二:仅发送字符串后保持连接(无需后续输入)
    如果你只是想发送完字符串后让连接维持开启,不需要手动输入额外内容,可以用sleep命令维持输入流:

    (echo "你要发送的目标字符串"; sleep infinity) | nc 远程服务器IP 端口号
    

    解释:sleep infinity会一直后台运行(直到你手动终止),管道不会因为echo结束而关闭,netcat就会保持和服务器的连接。要结束连接直接按Ctrl+C即可。

  • 方法三:用cat混合管道与终端输入
    这是方法一的等价写法,通过cat -同时读取echo的管道输出和后续终端输入:

    echo "你要发送的目标字符串" | cat - | nc 远程服务器IP 端口号
    

    效果和方法一完全一致,发送完初始字符串后可以继续输入内容,连接持续有效。

注意:如果远程服务器本身有连接超时配置,即使你本地保持输入流开启,服务器仍可能在超时后主动断开连接,这需要根据服务器的设置调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:11:50