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

Linux下如何后台运行telnet并记录全部会话输出到文件

根因说明

telnet 是交互式终端程序,默认会将标准输出、标准错误绑定到控制终端。当后台运行脱离终端后,程序的输出缓冲机制会切换为全缓冲,仅在缓冲区填满或进程退出时才会写入文件;且 telnet 会话的交互内容默认不会直接写入重定向的普通文件,只有连接阶段的状态信息会直接输出,因此会出现日志不全的问题。

可行解决方案

方案1:用script命令捕获全量终端输出(最推荐)

script 是 Linux 系统内置的终端会话录制工具,可完整捕获所有终端输出,无需额外依赖,兼容性最好:

script -q -c "telnet 替换为你的目标IP" new.txt > /dev/null 2>&1 & disown

参数说明:

  • -q:启用静默模式,不打印 script 自身的启动、退出提示信息
  • -c:指定要执行的目标命令,此处填写你要运行的 telnet 指令
  • 末尾的 new.txt 即为存储全量日志的文件,会包含从 telnet 启动到连接关闭的所有输出内容

方案2:用unbuffer禁用输出缓冲

如果要保留原有的重定向写法,可以用 expect 工具包提供的 unbuffer 强制 telnet 输出使用行缓冲,实时写入文件:

# Debian/Ubuntu 系安装依赖
apt install -y expect
# 后台运行telnet并实时写入日志
unbuffer telnet 替换为你的目标IP >> new.txt 2>&1 & disown

方案3:tcpdump 抓包兜底

如果需要完整记录 telnet 会话的所有交互流量,也可以直接抓对应端口的网络包,后续按需解析:

# 抓目标IP 23端口的所有流量,保存为pcap文件
tcpdump -i any host 替换为你的目标IP and port 23 -w telnet_traffic.pcap &

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:54:03