首页/网络/网络排障速查/证据固定:会话录制、输出保存与抓包留存
排查流程与方法36 条

证据固定:会话录制、输出保存与抓包留存

排障的输出与抓包属于一次性证据:终端滚动、缓冲区写满都会丢;用 script/tee/tcpdump -w 固定下来,复盘与供应商交涉都用得上。

网络排障速查网络更新于 2026-10-13

为什么要先固定证据

排障现场的很多信息是一次性的:终端滚屏会被覆盖,环形缓冲区写满就丢旧数据,连接表在重启后清空,抓包文件如果没落盘就没有第二次机会。凡是结论需要交给别人复核、或需要向运营商与云厂商举证的问题,都要求先把证据固定下来再动手修复。固定证据的动作本身很轻,代价却是省掉一次「问题不再复现、无法解释」的尴尬。

基本信息

要保留什么命令输出、抓包、配置快照、日志片段与统一的时间戳
工具script、tee、tcpdump -w、journalctl --since、配置备份
原则先留证据再做修复,证据与应用现象要能对应
目录规范按时间与故障编号归档,避免覆盖
合规抓包可能含用户数据与凭据,留存与传递需走内部流程

典型使用场景

  • 间歇故障:长期抓包与日志留存,等待问题再次出现
  • 向云厂商或运营商报障:附带证据包的问题处理更快
  • 跨团队交接:把证据与时间线一并移交,减少重复排查
  • 变更前留底:出问题时可以比对变更前后差异
  • 复盘与改进:用过程记录还原当时的判断依据

会话录制与输出留存(Linux)

会话录制与输出留存(Linux)
script -t 2> /tmp/ts.log -a /tmp/session.txt   # 录制整个终端会话
ip route | tee -a /tmp/evidence.log
journalctl --since '30 min ago' -u nginx > /tmp/nginx.30min.log
tcpdump -i any -nn -w /tmp/trace.pcap 'host 10.0.0.5 and port 443'
dmesg -T > /tmp/dmesg.log                      # 内核日志带可读时间

配置快照

配置快照
tar czf /tmp/etc-snapshot.tgz -C / etc/nginx etc/sysconfig etc/sysctl.conf etc/sysctl.d 2>/dev/null
ss -s > /tmp/socket-summary.txt                # 套接字汇总快照
ip -br a > /tmp/addr-snapshot.txt; ip route > /tmp/route-snapshot.txt   # 地址与路由快照

证据类型与留存方式

证据类型留存方式关键点
命令输出tee 或重定向到文件带上时间戳,含命令原文
终端会话script 录制包含交互过程,便于交接
抓包tcpdump -w 落盘并滚动必须加过滤器,避免写满磁盘
日志journalctl 按时间窗导出与应用错误时间对应
配置打包归档并记录校验值变更前先留一份
内核状态dmesg 与参数快照重启即丢失,优先采集
抓包文件可能含业务数据与凭据,例如明文口令或令牌:留存与传递要走内部安全流程,事后按保留期限清理。

易错点

  • 抓包未加过滤器直接全量落盘,几分钟就把磁盘写满
  • 先重启或先恢复再想收集证据,现场信息已被彻底破坏
  • 证据里没有时间戳或时间标准不统一,事后再也无法与其他数据对齐
  • 把证据文件散落在个人目录:交接或复盘时找不到,等于没有留存

数据来源与参考

  • man 1 script / man 8 tcpdump(-w 落盘)
  • systemd journalctl 手册

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌