pyngrok

alexdlairdMIT活跃维护

在 Python 代码里直接创建 ngrok 隧道,把本地服务暴露到公网,方便接收 webhook、做演示或调试 API,无需手动启动 ngrok 客户端。

The complete ngrok agent for Python: programmatic tunnels for ingress, inspection, webhooks, demos, and APIs

9.1.3发布于 2026-11-05 15:37 UTC470star +1 / 7 天60fork同步于 2026-11-10 23:57 UTC

怎么上手

由 README 提炼,执行前请确认
pip install pyngrok
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

在 Python 里直接调用真正的 ngrok agent,把本地服务暴露成公网 URL

在 Python 代码里直接创建 ngrok 隧道,把本地服务暴露到公网,方便接收 webhook、做演示或调试 API,无需手动启动 ngrok 客户端。

核心能力

  • 用 connect() 一行代码开隧道并返回 public_url
  • 统一封装 ngrok v2 tunnel 与 v3 endpoint 概念
  • 通过 api() 调用本地 agent 访问 ngrok API
  • 安装后自带 ngrok 二进制,可直接命令行使用
  • 支持命名隧道、内部端点与负载均衡配置

容易踩的坑

使用 ngrok API 前需先设置 authtoken 或 API key;部分功能依赖 ngrok 账号与配置文件中的隧道定义

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本9.1.3
  1. 9.1.3最新正式版2026-11-05 · 2026-11-05 15:37 UTC

    Fixed

    • Stability and bug fixes.
  2. 9.1.22026-11-02 · 2026-11-02 22:29 UTC
    查看更新说明

    Fixed

    • Stability and bug fixes.
  3. 9.1.12026-10-31 · 2026-10-31 18:43 UTC
    查看更新说明

    Fixed

    • Stability and bug fixes.
  4. 9.1.02026-10-26 · 2026-10-26 14:43 UTC
    查看更新说明

    Added

    • Support for Python 3.14 and 3.15.
  5. 9.0.32026-10-23 · 2026-10-23 18:40 UTC
    查看更新说明

    Fixed

    • Stability and bug fixes.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Version PyPI - Downloads Python Versions Coverage Build Code Quality Docs GitHub License

    pyngrok gives Python the complete ngrok agent, with programmatic tunnels for ingress, inspection, webhooks, demos, and APIs. ngrok is a reverse proxy that opens secure tunnels from public URLs to localhost, and because pyngrok runs the real agent, you get everything it offers, from traffic policies and OAuth to its web inspector and request replay, all callable from Python.

    Installation

    pyngrok is available on PyPI and can be installed using pip:

    pip install pyngrok
    

    or conda:

    conda install -c conda-forge pyngrok
    

    That's it! pyngrok is now available as a package to your Python projects, and ngrok is now available from the command line.

    Basic Usage

    Open a Tunnel

    To open a tunnel, use the connect method, which returns a NgrokTunnel, and this returned object has a reference to the public URL generated by ngrok in its public_url attribute.

    from pyngrok import ngrok
    
    # Open a HTTP tunnel on the default port 80
    # <NgrokTunnel: "https://<public_sub>.ngrok.io" -> "http://localhost:80">
    http_tunnel = ngrok.connect()
    
    # Open a SSH tunnel
    # <NgrokTunnel: "tcp://0.tcp.ngrok.io:12345" -> "localhost:22">
    ssh_tunnel = ngrok.connect("22", "tcp")
    
    # Open a named tunnel from the config file
    named_tunnel = ngrok.connect(name="my-config-file-tunnel")
    
    # Open an Internal Endpoint that's load balanced
    # <NgrokTunnel: "https://some-endpoint.internal" -> "http://localhost:9000">
    internal_endpoint = ngrok.connect(addr="9000",
                                      url="https://some-endpoint.internal",
                                      pooling_enabled=True)
    

    The connect method takes kwargs as well, which allows you to pass additional tunnel configurations that are supported by ngrok (or the name of a tunnel defined in ngrok's config file), as documented here.

    Note: pyngrok unifies ngrok's "tunnel" (v2) and "endpoint" (v3) concepts behind a single API: connect() returns an NgrokTunnel and handles the differences for you through the config_version you set. All ngrok features are available to you through this. For v3-specific Endpoints, see Using v3 Endpoints.

    ngrok's API

    The api method allows you to use the local ngrok agent to make requests against the ngrok API, if you have set an API key. For example, here's how you would reserve a ngrok domain, then create a Cloud Endpoint with an associated traffic policy:

    from pyngrok import ngrok
    
    domain = "some-domain.ngrok.dev"
    ngrok.api("reserved-domains", "create",
              "--domain", domain)
    ngrok.api("endpoints", "create",
              "--bindings", "public",
              "--url", f"https://{domain}",
              "--traffic-policy-file", "policy.yml")
    

    Command Line Usage

    This package puts the default ngrok binary on your path, so all features of ngrok are available on the command line.

    ngrok http 80
    

    For details on how to fully leverage ngrok from the command line, see ngrok's official documentation.

    Documentation

    For more advanced usage, pyngrok's official documentation is available on Read the Docs.

    Integration Examples

    Contributing

    If you would like to get involved, be sure to review the Contribution Guide.

    Want to contribute financially? If you've found pyngrok useful, sponsorship would also be greatly appreciated!