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

如何使用ngrok让本地网站可被Google搜索并获取固定URL?

如何用ngrok实现固定URL(适配本地网站与手机APK开发)

ngrok的免费套餐不支持固定自定义域名,只有Pro及以上付费套餐提供「预留固定域名」功能。如果要实现编程化的固定URL访问,核心是基于付费套餐的预留域名配置,以下是具体实现步骤:

1. 先在ngrok后台配置固定域名

  • 登录ngrok官方控制台,进入「Reserved Domains」页面
  • 添加你想要的固定域名(例如my-local-apk-app.ngrok.io),完成后该域名会被预留,不会随隧道重启变更

2. 编程方式绑定固定URL

方式一:通过配置文件启动(最简单的集成方式)

创建ngrok.yml配置文件,写入以下内容:

authtoken: 你的ngrok认证令牌
tunnels:
  local-app:
    addr: 8080 # 替换为你的本地网站端口
    proto: http
    domain: my-local-apk-app.ngrok.io # 替换为你预留的固定域名

在代码中调用ngrok时,指定加载该配置文件即可:

  • Python示例:
    import subprocess
    # 启动ngrok并加载配置
    subprocess.run(["ngrok", "start", "--config", "ngrok.yml", "local-app"])
    
  • 其他语言同理,只需执行带--config参数的ngrok启动命令

方式二:通过ngrok API动态创建固定隧道

使用ngrok官方API可以更灵活地控制隧道,步骤如下:

  1. 在ngrok控制台的「API Keys」页面获取你的API密钥
  2. 发送POST请求创建隧道时,指定domain参数为预留的固定域名,示例curl命令(可转译为对应语言的HTTP请求):
    curl -X POST https://api.ngrok.com/tunnels \
      -H "Authorization: Bearer 你的API密钥" \
      -H "Content-Type: application/json" \
      -d '{
        "addr": "http://localhost:8080",
        "proto": "http",
        "domain": "my-local-apk-app.ngrok.io"
      }'
    

调用成功后,隧道会直接绑定预留的固定域名,每次启动都使用同一URL。

3. 免费版的替代方案(无固定域名时的折中方案)

如果暂时不想升级付费套餐,可以通过脚本减少URL变更的影响:

  • 编写监控脚本,定期调用ngrok的本地API(http://localhost:4040/api/tunnels)获取当前隧道URL
  • 将最新URL同步到APK可访问的存储(例如本地文件、SharedPreferences,或简单的本地配置接口)
  • APK启动时主动拉取最新URL,避免硬编码导致的失效

注意事项

  • 预留的固定域名需保持激活状态,避免被ngrok回收
  • 确保代码中使用的ngrok认证令牌和API密钥正确,否则无法绑定固定域名
  • 固定域名仅在隧道运行时有效,关闭隧道后URL会暂时不可用,重启隧道后自动恢复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 09:37:46