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

如何通过安全源访问localhost托管网页?Budo服务跨设备报错求助

解决局域网访问budo托管服务的安全源限制问题

我之前也碰到过一模一样的问题!这个错误的核心原因是:Chrome等现代浏览器会限制强大的Web API(比如摄像头/麦克风访问、Service Worker、某些IndexedDB特性等)只能在「安全源」中运行。localhost是浏览器特例放行的安全源,但同一网络里用局域网IP(比如192.168.x.x)访问时,会被判定为非安全源,所以触发了这个报错。

下面是两种可行的解决方案,推荐第一种用于长期测试或开发:

方案一:用HTTPS托管budo服务(推荐)

通过生成自签名SSL证书,让局域网访问变成安全的HTTPS连接,这样浏览器就会放行所有受限API。

步骤1:生成信任的自签名证书

推荐用mkcert工具,它能自动把证书添加到系统信任列表,避免浏览器的不安全警告:

  • 先安装mkcert:
    • macOS:brew install mkcert
    • Windows:choco install mkcert
    • Linux:根据发行版选择包管理器安装,比如Ubuntu用sudo apt install mkcert
  • 初始化本地CA:mkcert -install
  • 生成包含你的局域网IP和localhost的证书:
    mkcert 192.168.x.x localhost 127.0.0.1
    
    把192.168.x.x替换成你电脑的实际局域网IP,执行后会生成两个文件(比如192.168.x.x+2.pem和192.168.x.x+2-key.pem)。

步骤2:用HTTPS启动budo

启动时指定SSL证书和密钥,同时让服务监听所有网络接口:

budo index.js --ssl --cert ./192.168.x.x+2.pem --key ./192.168.x.x+2-key.pem --host 0.0.0.0

替换命令里的证书文件名和你的入口文件(比如index.js),启动后同一网络的设备就可以通过https://192.168.x.x:端口号访问了,第一次访问需要手动信任证书(点击浏览器的「高级」→「继续访问」),之后就正常使用所有功能了。

方案二:临时放宽浏览器安全限制(仅测试用)

如果只是临时测试,不想折腾证书,可以在Chrome里开启一个特殊开关,把你的局域网IP标记为安全源:

  • 打开Chrome的chrome://flags/#unsafely-treat-insecure-origin-as-secure
  • 在输入框里填入你的budo服务地址(比如http://192.168.1.100:8000)
  • 启用这个选项,重启Chrome

⚠️ 注意:这个方法只适合本地测试,绝对不能用于生产环境,而且每次浏览器更新可能会重置这个设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:00:39