昨天Chrome自动升级到148版本。
升级完我电脑上一直在用的浏览器插件直接罢工了。不是那种"偶尔卡一下"的小毛病,是彻底连不上,报错信息看得我头皮发麻:
WebSocket connection to 'ws://127.0.0.1:18765/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
翻译成人话就是:我的插件想跟自己电脑上的一个程序说句话,Chrome直接把嘴堵上了。
折腾了差不多3个小时,翻了一堆英文文档和论坛帖子,终于搞明白了原因和解决办法。
今天把全过程写下来,如果你也遇到了Chrome升级后插件不能用的问题,看完这篇直接就能修好。
到底发生了什么?

▲ 一张图看懂问题和修复方案
Chrome从147版本开始,悄悄加了一个叫"Local Network Access"(局域网访问控制)的安全策略。
到了148版本,这个策略更严格了——它开始限制WebSocket连接访问本机(127.0.0.1或localhost)。
用人话说就是:以前插件可以跟自己电脑上的程序自由聊天,现在Chrome在中间加了个人,审核每一条消息,而且大部分直接拒收。
你可能要问:为什么要限制?
Google的想法是这样的:万一你访问了一个恶意网站,这个网站里的代码偷偷通过WebSocket连接你电脑上的其他程序(比如打印机、路由器管理页面、智能家居控制台),那就危险了。
所以Chrome说:不行,我得拦住。
听起来挺合理的对吧?
问题是——大量正规工具也是通过这种方式工作的。
比如:
• 浏览器自动化插件(帮AI控制浏览器的)
• 安全测试工具(Burp Suite之类的)
• 本地开发工具(热重载、调试器)
• 企业安全软件
• 各种"本地程序+浏览器插件"的组合
这些工具全都是通过浏览器插件连接本机的WebSocket来工作的。Chrome一刀切下去,全给拦了。
而且Chrome升级是自动的,你甚至不知道什么时候就升了,然后插件就突然不好使了。
受影响的是哪些插件?

▲ 从现象到根因
不是所有插件都中招。得同时满足两个条件:
第一,你的Chrome版本是147或更高(目前最新是148)。
第二,这个插件通过WebSocket连接本机地址(127.0.0.1或localhost)。
最常见的受害者:
• 各种浏览器自动化工具(Puppeteer辅助插件、CDP调试桥)
• 本地开发环境的热重载工具
• 安全扫描工具的浏览器插件
• AI浏览器控制插件
• 一些VPN/代理的浏览器辅助插件
如果你最近Chrome自动更新后,某个插件突然不好使了,而且报错里有"WebSocket"或"ERR_CONNECTION_REFUSED"字样,那十有八九就是这个问题。
怎么修?两步搞定
别慌,不用降级Chrome,不用写代码,改一个设置就行。
第一步:打开Chrome的隐藏设置页面
在Chrome地址栏输入:
回车。
你会看到一个设置项叫"Local Network Access Checks for WebSockets"。
第二步:改成Disabled
这个设置默认是"Default"(相当于开启)。把它改成 Disabled。
然后Chrome底部会弹出一个"Relaunch"按钮,点它重启Chrome。
重启完,插件就恢复正常了。
就这么简单。两步,1分钟搞定。

▲ 修复只需两步
如果上面那个地址找不到,试试这个:
打开后在页面顶部搜索框搜 "Local Network Access",找到 WebSockets 那一项,同样改成 Disabled 就行。
改这个设置安全吗?
说实话,有一定风险。关掉这个检查意味着浏览器不会额外审查WebSocket连接本机的行为。
但你要知道两件事:
第一,这个检查是Chrome额外加的一层保护,不是唯一的安全防线。你的电脑本身有防火墙,有杀毒软件,有操作系统级别的安全策略。关掉Chrome这一层不会让你的电脑裸奔。
第二,这个检查是Chrome 147才加的,也就是说在此之前你的电脑一直都没有这层保护,也没出什么事。也就是说你的电脑裸奔了好多年,一直好好的。
所以我的建议是:如果你确实需要用到这类插件,关掉是合理的。如果你从来不使用任何通过WebSocket连接本机的工具,那保持默认也行。
给开发者的提醒:代码也得改
这个段落是给写插件的开发者看的,普通用户跳过就行。
如果你的插件代码里用了 chrome.scripting.executeScript,Chrome 148有个隐藏坑:这个方法在某些情况下返回null了,而不是以前的老规矩返回空数组。
如果你的代码直接写 result[0].result,就会报错:
Error: Cannot read properties of null (reading '0')
修复方法很简单,加个空值判断就行:
改之前:
改之后:
就这一行代码的事,但如果你不知道Chrome改了行为,能排查到怀疑人生。我就是这么过来的。
Google能不能别这么搞?
说实话我对Chrome这种"静默破坏"的做法挺无语的。
安全策略当然重要,但你能不能给个提示?比如升级后第一次打开Chrome时弹个窗说"嘿,我们增强了安全策略,可能影响某些插件",而不是让用户自己踩坑然后满世界搜解决方案。
Google自己的开发者文档里写了一句轻描淡写的"Chrome 147 expands Local Network Access restrictions to include WebSocket connections",就这?几百万用户的插件莫名其妙不能用了,就一句话的事?
而且去Reddit上搜搜,Chrome 146开始就有人在骂了,到148了还没给个正经的迁移方案或者用户提示。
算了,骂也没用。至少现在你知道怎么修了。
如果你身边也有朋友Chrome升级后插件挂了,把这篇文章转给他们。两步就能搞定,不用重装不用降级。
关注AI智管局,回复"Chrome插件"获取更多浏览器工具实测和避坑指南。
你有没有遇到过Chrome升级后什么工具突然不能用的经历?评论区说说你被坑最惨的一次,我看看谁比我还惨。
🔧 浏览器工具实测 · 避坑指南
更多浏览器工具实测和避坑技巧
夜雨聆风