fiddler不拦截websocket连接失败的握手请求,需先确认请求是否发出及是否被代理阻断或协议绕过;若看不到connect请求,应检查代理配置、禁用quic、开启https connect捕获并排查端口拦截。

WebSocket连不上时,Fiddler本身不拦截连接失败的握手请求——它只捕获已成功建立隧道后的流量。所以第一步不是开Fiddler,而是先确认连接是否真的发出了、是否被代理阻断、是否被浏览器或系统协议绕过。
WebSocket握手阶段看不到CONNECT请求?检查代理和QUIC
Fiddler靠拦截 CONNECT 请求来捕获 WebSocket 握手(wss:// 或 ws://),但很多“连不上”问题其实在这之前就失败了:
- 浏览器没走 Fiddler 代理:确认 Chrome / Edge 地址栏输入
chrome://settings/system→ “打开计算机的代理设置” → 确保是手动配置为127.0.0.1:8888,而非“自动检测” - QUIC 协议干扰:Chrome 默认启用 QUIC(基于 UDP),会绕过 Fiddler 的 TCP 代理。地址栏输入
chrome://flags/#enable-quic→ 设为Disabled,重启浏览器 - HTTPS CONNECT 未开启:Fiddler →
Tools → Options → HTTPS→ 勾选Capture HTTPS CONNECTs(即使你用的是ws://,这个选项也影响隧道建立) - 防火墙/杀毒软件拦截本地 8888 端口:临时禁用试试;或改 Fiddler 监听端口(
Tools → Options → Connections)并同步更新浏览器代理
能看到CONNECT但点不开WebSocket标签页?版本与配置双查
出现握手请求(类型为 CONNECT、Protocol 显示 websocket),但双击后没有 WebSocket Frames 标签,说明 Fiddler 没启用帧解析:
WebSocket 8.18.2 是该协议规范的一个重要迭代版本,主要优化了连接稳定性与数据传输效率。它通过全双工通信机制,允许客户端与服务器在单一长连接上实时交换数据,大幅降低传统 HTTP 轮询的开销。该版本增强了心跳保活、自动重连及二进制帧传输能力,适用于即时通讯、在线游戏及金融行情推送等低延迟场景,为开发者提供更可靠的实时网络交互基础。
- Fiddler 版本必须 ≥ 4.6(推荐用最新版 Fiddler v5+,旧版如 4.4.x 不支持)
- 必须开启帧解析:
Rules → Options → Performance→ 勾选ParseWebSocketMessages - 如果用了过滤器(Filters),确保目标 WebSocket URL(如
ws://localhost:8080/chat)没被规则屏蔽;可临时点Actions → Remove All Filters测试 - 重启 Fiddler + 浏览器,不要只刷新页面——旧连接缓存可能干扰新抓包
抓到了帧但内容是乱码或全是十六进制?注意Opcode和解码方式
Fiddler 自动解掩码(客户端→服务端帧),但显示格式取决于帧类型和人工选择:
- 文本帧(
Opcode=1):默认显示 UTF-8 字符串,若看到乱码,大概率是服务端发来的数据实际不是 UTF-8 编码(比如含二进制头),此时别硬切String视图 - 二进制帧(
Opcode=2):默认 HexView,点击右上角View as… → String仅在 payload 真为可打印文本时有效;否则保持 Hex 查看原始字节 - 控制帧(Ping/Pong/Close):Fiddler 显示为元数据,不带 payload,无需解码;若频繁收到 Close 帧,直接看
Close Code和Reason字段(如1006表示异常关闭) - Log 标签里输出的
oMsg.ToString()可能截断长消息,优先以WebSocket Frames标签页为准
想改请求或模拟重连?Fiddler原生不支持WebSocket重放
Fiddler 是 HTTP 代理,不是 WebSocket 客户端,它无法主动重发或修改已建立连接中的帧:
- 不能像 HTTP 那样右键
ReplayWebSocket 消息——该菜单对 ws 会话无效 - 如需构造/篡改帧,得用其他工具:比如
whistle(支持 WebSocket 插件)、Wireshark(底层抓包,需解密 TLS)、或写个简易 Node.js 客户端用ws库直连调试 - FreeHttp 插件虽可拦截 ws 流量,但依赖 .NET Framework 且兼容性差(尤其 Fiddler v5+),不建议新手折腾
- 真正要验证“连不上是不是服务端问题”,最简单方法:用
wscat命令行直连,绕过浏览器和 Fiddler:npx wscat -c "wss://echo.websocket.org"
WebSocket 抓包真正的难点不在“怎么点开标签页”,而在于区分问题发生在哪一层:DNS?TCP 连接?TLS 握手?HTTP Upgrade 失败?还是帧发送后服务端静默丢弃?Fiddler 只能帮你看清 Upgrade 成功之后的部分,前面每一步都得靠日志、命令行和网络基础判断。










