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

如何在OpenShift Windows容器内捕获网络流量?含TCP超时排障需求

OpenShift Windows容器网络调试指南

一、容器内使用类Wireshark工具抓包

Windows容器中推荐用tshark(Wireshark命令行版),无需图形界面即可完成抓包,操作步骤如下:

  1. 进入容器交互式终端
    先获取目标Pod名称:

    oc get pods
    

    进入容器的PowerShell环境:

    oc exec -it <你的Pod名称> -- powershell
    
  2. 安装tshark
    用Chocolatey包管理器快速安装(容器需联网):

    choco install -y wireshark
    
  3. 执行抓包操作

    • 查看容器内网络接口:
      Get-NetAdapter
      
      记录要抓包的接口名称(比如Ethernet)
    • 实时查看TCP流量:
      tshark -i "Ethernet" -f "tcp"
      
    • 保存抓包到文件:
      tshark -i "Ethernet" -w c:\capture.pcap
      
    • 将抓包文件导出到本地:
      oc cp <你的Pod名称>:c:\capture.pcap ./本地保存路径/capture.pcap
      

二、TCP闲置10分钟超时调试

容器内可用调试工具

  1. netsh(Windows自带)

    • 查看TCP全局超时配置:
      netsh int tcp show global
      
      重点关注Idle Time相关参数,确认是否为10分钟
    • 查看活跃TCP连接及进程ID:
      netstat -ano | findstr "ESTABLISHED"
      
  2. Test-NetConnection
    模拟闲置后测试TCP连通性,输出详细信息:

    Test-NetConnection <目标IP> -Port <目标端口> -InformationLevel Detailed
    

Windows工作节点上的抓包命令

  1. 登录目标Windows节点的调试环境:

    oc debug node/<你的节点名称>
    

    进入节点PowerShell:

    chroot /host powershell
    
  2. 用tshark抓Pod相关TCP流量
    先获取Pod的IP(通过oc describe pod <你的Pod名称>查看),然后执行:

    tshark -i "Ethernet" -f "host <Pod的IP> and tcp" -w c:\node_tcp_capture.pcap
    
  3. 用Windows自带netsh trace追踪TCP

    • 启动追踪:
      netsh trace start capture=yes tracefile=c:\tcp_trace.etl protocol=tcp
      
    • 停止追踪:
      netsh trace stop
      
    • 转换ETL文件为可读文本:
      netsh trace convert input=c:\tcp_trace.etl output=c:\tcp_trace.txt
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:22:31