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

PyNgrok无法启动ngrok.yaml中所有隧道,命令行却正常,求解?

解决PyNgrok无法启动所有隧道的问题

问题核心在于ngrok.connect()方法的默认行为:它仅会启动配置文件中第一个定义的隧道(也就是你的HTTP隧道),不会自动遍历并启动所有隧道。而命令行的ngrok start --all是显式触发所有隧道启动,所以能正常生效。

解决方案

使用PyNgrok的ngrok.start()方法替代connect(),对应命令行的ngrok start命令,支持启动所有或指定隧道:

1. 启动配置文件中所有隧道

from pyngrok import ngrok

# 指定自定义配置文件路径
ngrok.set_config_path("/ngrok.yaml")

# 等价于命令行的 `ngrok start --all --config=/ngrok.yaml`
ngrok.start("--all")

2. 启动指定的隧道列表

如果你只想启动部分隧道(比如同时启动http和ssh),可以传入隧道名称列表:

from pyngrok import ngrok

ngrok.set_config_path("/ngrok.yaml")
ngrok.start(["http", "ssh"])

补充说明

  • ngrok.connect()是为快速创建单个隧道设计的API,即使指定了配置文件,也只会读取第一个隧道的配置参数来创建实例。
  • 若仍有问题,检查pyngrok版本,建议升级到最新稳定版,避免旧版本的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:35:29