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

如何使用pyngrok免费账号运行多个ngrok会话?

问题描述

运行两个基于pyngrok的Python文件时,收到错误提示:

The ngrok process errored on start: authentication failed: Your account is limited to 1 simultaneous ngrok agent session.
You can run multiple tunnels on a single agent session using a configuration file.

已修改的ngrok.yml配置文件内容:

version: "2"
authtoken: *********
tunnels:
  first:
    addr: 8443
    proto: http    
  second:
    addr: 8444
    proto: http

两个Python文件代码:
文件1:

public_url = ngrok.connect(8443, "http").public_url

文件2:

public_url = ngrok.connect(8444, "http").public_url

如何通过pyngrok免费账号实现多隧道运行?

解决方案

免费ngrok账号仅支持1个Agent会话,但单个会话可创建多个隧道,无需启动多个Agent进程。核心是让两个Python文件共享同一个ngrok Agent会话,而非各自启动新会话。

方法1:通过配置文件批量启动隧道,业务文件获取对应URL

  1. 编写启动脚本加载配置并启动所有隧道:
# start_tunnels.py
from pyngrok import ngrok, conf

# 指定自定义配置文件路径
conf.get_default().config_path = "/path/to/your/ngrok.yml"
# 启动配置中定义的所有隧道
tunnels = ngrok.start()

# 可选:打印各隧道公网URL
for tunnel in tunnels:
    print(f"{tunnel.name}: {tunnel.public_url}")
  1. 业务文件中直接获取已启动隧道的URL:
# 文件1
from pyngrok import ngrok

public_url = ngrok.get_tunnel("first").public_url
# 文件2
from pyngrok import ngrok

public_url = ngrok.get_tunnel("second").public_url

方法2:复用已启动的Agent会话创建多隧道

  1. 文件1中初始化会话并创建第一个隧道:
# 文件1
from pyngrok import ngrok, conf

# 设置authtoken(也可通过配置文件加载)
conf.get_default().authtoken = "你的authtoken"
# 创建第一个隧道并命名
tunnel1 = ngrok.connect(8443, "http", name="first")
public_url1 = tunnel1.public_url
  1. 文件2中直接复用已有会话创建第二个隧道:
# 文件2
from pyngrok import ngrok

# pyngrok会自动检测已运行的Agent会话,无需重复初始化
tunnel2 = ngrok.connect(8444, "http", name="second")
public_url2 = tunnel2.public_url

注意:需确保两个文件在同一环境运行,且第一个文件的Agent会话在第二个文件启动时处于活跃状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:42:59