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

免费版ngrok如何绕过浏览器警告页面?命令及配置尝试均失败

解决免费版ngrok跳过浏览器警告页面的可行方案

首先明确:你之前尝试的--request-header-add和配置文件里的request_header.add都是往ngrok转发到本地服务的请求里加头,而ngrok的警告页面是在用户请求ngrok服务器时触发的,所以这些设置根本不会被ngrok的边缘服务检测到,自然无效。

针对免费版无法配置边缘请求头的限制,给你两个实用的解决方法:

方法一:用Service Worker自动为所有请求添加跳过警告的头

这个方法能让客户扫码打开入口页面后,后续所有请求自动带上ngrok-skip-browser-warning: true头,彻底绕过警告页面。

  1. 在你的web服务根目录创建两个文件:

    • 入口页面index.html:
      <!DOCTYPE html>
      <html>
      <head>
          <title>加载中...</title>
          <script>
              if ('serviceWorker' in navigator) {
                  window.addEventListener('load', async () => {
                      try {
                          await navigator.serviceWorker.register('/sw.js');
                          // 注册成功后跳转到你的实际业务页面
                          window.location.href = 'https://badger-glad-steadily.ngrok-free.app';
                      } catch (err) {
                          alert('加载失败,请刷新重试');
                      }
                  });
              } else {
                  // 不支持Service Worker的旧浏览器,直接跳转
                  window.location.href = 'https://badger-glad-steadily.ngrok-free.app';
              }
          </script>
      </head>
      <body>
          正在准备,请稍候...
      </body>
      </html>
      
    • Service Worker文件sw.js:
      self.addEventListener('fetch', (event) => {
          // 为所有请求添加跳过警告的请求头
          const newHeaders = new Headers(event.request.headers);
          newHeaders.set('ngrok-skip-browser-warning', 'true');
      
          const modifiedReq = new Request(event.request, {
              headers: newHeaders
          });
      
          event.respondWith(fetch(modifiedReq));
      });
      
  2. 让客户扫码访问你的ngrok域名(即指向这个index.html的地址),第一次加载会注册Service Worker,之后所有请求都会自动带齐所需头,不会再出现警告页面。

方法二:用Nginx做本地反向代理(适合有服务器基础的用户)

如果你的本地环境能部署Nginx,可以通过Nginx转发请求时添加所需头,让ngrok的边缘服务检测到:

  1. 配置Nginx反向代理(假设你的web服务跑在8000端口):

    server {
        listen 8080;
        server_name localhost;
    
        location / {
            proxy_pass http://localhost:8000;
            # 关键:添加请求头到转发给ngrok的请求中
            proxy_set_header ngrok-skip-browser-warning true;
        }
    }
    
  2. 启动Nginx后,用ngrok代理Nginx的8080端口:

    ngrok http 8080
    

    这样ngrok收到的所有请求都会带有ngrok-skip-browser-warning: true头,直接跳过警告页面。

补充说明

  • 之前命令行报错是因为Windows CMD不识别单引号,换成双引号即可正常执行,但这个参数本身对跳过警告没用,不用纠结。
  • HTTP请求头的键值对之间必须有空格,ngrok-skip-browser-warning:true是不符合规范的,即使命令执行成功也不会被识别。

内容的提问来源于stack exchange,提问作者知識日常 Know Scratcher

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:19:56