需将about:config中network.proxy.allow_hijacking_localhost设为true,否则firefox强制绕过代理直连localhost/127.0.0.1/::1,导致burp等工具无法捕获websocket握手请求。

火狐浏览器默认禁止代理工具劫持本地回环地址的流量,导致Burp Suite、Fiddler等抓包工具无法捕获发往localhost、127.0.0.1或::1的WebSocket请求,即使代理已正确配置、证书已安装、wss://连接也显示正常,Network面板里却完全看不到握手请求(GET /ws)。
根本原因:Firefox主动拦截本地回环代理
从Firefox Quantum版本起,浏览器在about:config中新增了安全策略network.proxy.allow_hijacking_localhost,默认值为false。该策略强制将所有对localhost/127.0.0.1/::1的连接绕过代理,无论你在“设置→常规→网络设置”中如何配置手动代理,这部分流量始终直连,不经过Burp监听的127.0.0.1:8080。
这正是WebSocket握手请求(Upgrade: websocket)消失的根本原因——请求压根没发到Burp,更谈不上解密或展示。
启用本地回环代理劫持
第一步:在Firefox地址栏输入about:config并回车,点击“接受风险并继续”。
第二步:在搜索框中输入network.proxy.allow_hijacking_localhost。
第三步:双击该条目,将其值由false改为true。
这一步生效后无需重启浏览器,但需刷新目标页面或重新发起WebSocket连接。注意:若搜索不到该选项,说明你使用的是极老版本Firefox(
验证是否真正生效
方法一:打开Firefox“设置→常规→网络设置→设置”,确认“不使用代理的主机”文本框为空。如果里面写着localhost, 127.0.0.1或类似内容,必须手动清空——否则会与about:config设置冲突,导致劫持失效。
方法二:访问任意使用ws://或wss:// localhost的页面,在Burp Proxy的HTTP历史中观察是否有GET /ws或GET /socket类请求出现。有则说明劫持成功;仍无,则检查是否漏改配置或页面加载时已建立连接(需硬刷新Ctrl+F5)。
【关键提醒】修改此配置仅影响当前Firefox配置文件,多用户或多配置文件环境需逐个处理。切换Firefox账户或新建配置文件后,该选项会重置为false。











