如何在OpenShift Windows容器内捕获网络流量?含TCP超时排障需求
OpenShift Windows容器网络调试指南
一、容器内使用类Wireshark工具抓包
Windows容器中推荐用tshark(Wireshark命令行版),无需图形界面即可完成抓包,操作步骤如下:
进入容器交互式终端
先获取目标Pod名称:oc get pods进入容器的PowerShell环境:
oc exec -it <你的Pod名称> -- powershell安装tshark
用Chocolatey包管理器快速安装(容器需联网):choco install -y wireshark执行抓包操作
- 查看容器内网络接口:
记录要抓包的接口名称(比如Get-NetAdapterEthernet) - 实时查看TCP流量:
tshark -i "Ethernet" -f "tcp" - 保存抓包到文件:
tshark -i "Ethernet" -w c:\capture.pcap - 将抓包文件导出到本地:
oc cp <你的Pod名称>:c:\capture.pcap ./本地保存路径/capture.pcap
- 查看容器内网络接口:
二、TCP闲置10分钟超时调试
容器内可用调试工具
netsh(Windows自带)
- 查看TCP全局超时配置:
重点关注netsh int tcp show globalIdle Time相关参数,确认是否为10分钟 - 查看活跃TCP连接及进程ID:
netstat -ano | findstr "ESTABLISHED"
- 查看TCP全局超时配置:
Test-NetConnection
模拟闲置后测试TCP连通性,输出详细信息:Test-NetConnection <目标IP> -Port <目标端口> -InformationLevel Detailed
Windows工作节点上的抓包命令
登录目标Windows节点的调试环境:
oc debug node/<你的节点名称>进入节点PowerShell:
chroot /host powershell用
tshark抓Pod相关TCP流量
先获取Pod的IP(通过oc describe pod <你的Pod名称>查看),然后执行:tshark -i "Ethernet" -f "host <Pod的IP> and tcp" -w c:\node_tcp_capture.pcap用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
相关产品推荐
相关产品推荐

